XPath表达式以源顺序选择* all *元素,文本节点和注释节点

时间:2012-05-30 10:59:55

标签: javascript html dom xpath

选择所有元素,文本节点和注释节点的XPath表达式的顺序与它们在文档中出现的顺序相同?

以下内容有效地选择了所有元素,但没有选择文本节点和注释节点:

var result = document.evaluate('//*', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null),
    index = -1;
while (++index < result.snapshotLength) {
  console.log(result.snapshotItem(index));
}

是否可以执行以下操作? (注意:这是非功能性伪代码。)

document.evaluate('//* and text() and comment()');

2 个答案:

答案 0 :(得分:5)

//node()

选择每个节点的子节点:即所有元素,文本节点,注释和处理指令(但不是属性,命名空间节点或文档节点)

答案 1 :(得分:1)

使用XML文档中的文本和注释节点进行测试。可能有一种更有效的方法,但这会以文档顺序返回元素,文本和注释节点,使用union:

//*|//*/text()|//*/comment()