gpt4 book ai didi

javascript - xpath 的问题在 javascript 中使用 namespace 进行评估

转载 作者:行者123 更新时间:2023-11-29 21:57:11 25 4
gpt4 key购买 nike

我正在尝试计算一个简单的 xpath 表达式。

我有一个 xml 对象,

var xn = response.resultXML; 

xn.outerHTML 的计算结果为:

<Result xmlns="http://url.com/services">
<AE>0</AE>
<FM>0</FM>
<OCX>0</OCX>
<TX>0</TX>
<AR>0</AR>
<Items>
<RI>
<PR>1</PR>
<Date>2003-07-19T00:00:00</Date>
<AR>228217.5600</AR>
<AQ>19018.1300</AQ>
<CBZ>13.519997630331753554502369668</CBZ>
<XN>1.1266664691943127962085308057</XN>
<AM>19018.1300</AM>
<Unit>PerMonth</Unit>
<UnitString>$/Month</UnitString>
<DD>0.0</DD>
<CR>0</CR>
</RI>
</Items>
</Result>

我正在尝试使用以下查询评估此 xml。xml 是 soap 网络服务调用的结果。

var xdoc = xn.ownerDocument;
resolver = xdoc.createNSResolver(xdoc.documentElement);
var es = xdoc.evaluate("Items", xn, resolver, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
var node = es.singleNodeValue

我没有得到任何结果。有人可以指出正确的方向来检索 Items 节点吗?谢谢。

编辑 -

这是 xn.ownerDocument.documentElement 的外部 HTML:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<Result xmlns="http://url.com/services">
<AE>0</AE>
<FM>0</FM>
<OCX>0</OCX>
<TX>0</TX>
<AR>0</AR>
<Items>
<RI>
<PR>1</PR>
<Date>2003-07-19T00:00:00</Date>
<AR>228217.5600</AR>
<AQ>19018.1300</AQ>
<CBZ>13.519997630331753554502369668</CBZ>
<XN>1.1266664691943127962085308057</XN>
<AM>19018.1300</AM>
<Unit>PerMonth</Unit>
<UnitString>$/Month</UnitString>
<DD>0.0</DD>
<CR>0</CR>
</RI>
</Items>
</Result>
</soap:Body>
</soap:Envelope>

最佳答案

如果您事先知道 Items 元素的 namespace ,那么只需这样做

var es = xdoc.evaluate("//df:Items", xn, function(prefix) { if (prefix === 'df') { return 'http://url.com/services'; } else { return null; }}, XPathResult.FIRST_ORDERED_NODE_TYPE, null);

关于javascript - xpath 的问题在 javascript 中使用 namespace 进行评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25895012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com