- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 xml,我想阅读它的 <block>
节点。但是当我在 XPath 下面执行时,它给了我一个错误。
我试图解析的 xml:
let x = `<xml>
<block type="block_onGreenFlagClicked" id=";]jZ*Zs|[L-Sr{nhCB%V" x="25" y="0">
<field name="NAME1">When</field>
<statement name="function_name">
<block type="helper_Player__walkSecondsDrop" id="9lo_/{gKTxB6/FRH2Pw">
<field name="LABEL">Player.</field>
<field name="DROP_Player__walkSecondsDrop$">walkForwardForNSeconds</field>
</block>
</statement>
</block>
</xml>`;
let doms = new DOMParser()
let v = doms.parseFromString(x, 'text/xml')
let r = v.evaluate('/block',v, null, XPathResult.ANY_TYPE, null)
下面是结果:
XPathResult {invalidIteratorState: false, resultType: 4, iterateNext: function, snapshotItem: function, ANY_TYPE: 0…}
booleanValue: [Exception: TypeError: Failed to read the 'booleanValue' property from 'XPathResult': The result type is not a boolean.]
invalidIteratorState: false
numberValue: [Exception: TypeError: Failed to read the 'numberValue' property from 'XPathResult': The result type is not a number.]
resultType: 4
singleNodeValue: [Exception: TypeError: Failed to read the 'singleNodeValue' property from 'XPathResult': The result type is not a single node.]
snapshotLength: [Exception: TypeError: Failed to read the 'snapshotLength' property from 'XPathResult': The result type is not a snapshot.]
stringValue: [Exception: TypeError: Failed to read the 'stringValue' property from 'XPathResult': The result type is not a string.]
__proto__: XPathResult
最佳答案
代码没有问题。 /block
XPath 表达式什么都不选择,因为根元素是 xml
元素。将表达式更改为 //block
选择那两个block
元素。例子:
let x = `<xml>
<block type="block_onGreenFlagClicked" id=";]jZ*Zs|[L-Sr{nhCB%V" x="25" y="0">
<field name="NAME1">When</field>
<statement name="function_name">
<block type="helper_Player__walkSecondsDrop" id="9lo_/{gKTxB6/FRH2Pw">
<field name="LABEL">Player.</field>
<field name="DROP_Player__walkSecondsDrop$">walkForwardForNSeconds</field>
</block>
</statement>
</block>
</xml>`
let doms = new DOMParser()
let v = doms.parseFromString(x, 'text/xml')
let r = v.evaluate('//block', v, null, XPathResult.ANY_TYPE, null)
var s = new XMLSerializer();
var t = document.getElementById("output");
while ((n = r.iterateNext())) {
t.value += (s.serializeToString(n)) + "\n";
}
<body>
<textarea id="output" rows="15" cols="60"></textarea>
</body>
关于javascript - XPathResult 的评估返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59986563/
我在 mozilla 开发者站点上发现关于 XPathResult 的文档很少。列出的所有功能都重定向到主页,因此它们可能尚未记录。 var myFind; myFind = document.eva
我有一个 xml,我想阅读它的 节点。但是当我在 XPath 下面执行时,它给了我一个错误。 我试图解析的 xml: let x = ` When
以下内容全部用 JavaScript 编写。 我有以下 XML Hotel 1 Hotel 2 我的 xpath(“//Hotel”)的“结果”返回一个长度为 2 的数组。 接下来我该怎么
我已经为Firefox安装了greasemonkey插件(我的FF版本是21.0)。我写了一个名为 mahesh.user.js 的用户脚本 var links = document.evaluate
我正在尝试为 xml 创建跨浏览器界面,特别是使用 XPath 表达式来选择节点。 IE 很简单: this.documentElement.selectNodes(xPathStr); 返回一个提供
我正在使用以下代码... var result = document.evaluate(expr,context,null,9,null); 打印结果时出现以下错误... Error: TYPE_E
我正在使用一些 javascripts。我用过 var xpathResults = document.evaluate(xpath, domContext, null, XPathResult.AN
当我使用 querySelectorAll 时,我可以在示例文档中找到 138 个 td 节点。 Array.from(document.querySelectorAll('td')).length
我正在执行大量 document.evaluate,然后使用 result.snapshotLength 上的 for 循环遍历每个结果。 因为我在每个循环(thisDiv.parentNode.re
我需要使用 javascript 获取 XPathResult 并迭代它,克隆结果的每个节点。最初,我尝试了以下操作,结果为 ORDERED_NODE_ITERATOR_TYPE: childNode
我试图获取所有对象,但它不起作用。 var tmp = document.evaluate("//tr", document, null, XPathResult.ANY_TYPE, null); t
我有以下 JavaScript 类包装 document.evaluate()使用 XPath 选择 DOM 元素: 'use strict' Object.defineProperty(export
我在 chrome 和 PhantomJS 上使用这个 javascript(没问题),但在 IE 11 上则不行(XPathResult 未定义) document.evaluate(".//*[@
在使用 document.evaluate 时,我再次尝试将 xpathResult 用作与所附示例类似的上下文节点,但没有成功,我哪里错了? const getAllLiButton = docum
我参与了一个从 IE8 迁移到 IE9 的项目。我了解到 IE9 及更高版本不再支持 selectNodes() 执行 xPath 查询。作为回应,我转向 Google 的 Wicked-Good-X
我是一名优秀的程序员,十分优秀!