5

选择所有元素、文本节点和注释节点的 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()');
4

2 回答 2

5
//node()

选择作为某事物子节点的每个节点:即所有元素、文本节点、注释和处理指令(但不包括属性、命名空间节点或文档节点)

于 2012-05-30T13:05:00.253 回答
1

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

//*|//*/text()|//*/comment()
于 2012-05-30T11:08:30.597 回答