【发布时间】:2012-03-08 17:02:51
【问题描述】:
我有一些 JavaScript/Xpath 无法正常工作。 (available on jsfiddle) 似乎我在使用 XML 命名空间时做错了,阻止我通过节点(标签)名称查询我的元素。
如果我尝试查询当前节点的所有子节点,我发现元素myElement没有问题:
var xpathResult = xmlDoc.evaluate( "child::*", rootElement, nsResolver, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var queryEl;
if(queryEl = xpathResult.iterateNext()) {
alert("child::* found element " + queryEl.nodeName);
}
else {
alert("child::* found nothing!");
}
...但如果我专门针对具有 myElement 节点(标签)名称的节点,我将得不到任何结果:
/* Now try getting only those children with nodeName `myElement` */
xpathResult = xmlDoc.evaluate( "child::myElement", rootElement, nsResolver, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var queryEl;
if(queryEl = xpathResult.iterateNext()) {
alert("child::myElement found element " + queryEl.nodeName);
}
else {
alert("child::myElement found nothing!");
}
我做错了什么?
【问题讨论】:
-
您能否拆分您的问题以仅显示问题?作为一个简短且(无效)的示例?
-
@powtac - 尝试过......但代码实际上只创建了一个 XML 文档,然后对其进行 2 次查询。这真的只是一个测试用例。
标签: javascript xpath xml-namespaces