使用XPath访问XML中的注释

Man*_*noj 46 xpath

如何使用XPath访问XML文档中的注释?

例如:

<table>
<length> 12 </length>
<!--Some comment here-->
</table>
Run Code Online (Sandbox Code Playgroud)

我想访问"这里的一些评论".

谢谢...

编辑:我正在使用MSXML DOM ActiveX和命令注释()似乎失败...任何想法为什么?

Bjö*_*örn 57

随着路径

/foo/bar/comment()
Run Code Online (Sandbox Code Playgroud)

您可以选择/ foo/bar元素中的所有注释.当然,可能取决于您选择的语言.但通常这就是你如何做到的.


Ant*_*nes 19

使用comment()函数例如: -

/table/length/following::comment()[1]
Run Code Online (Sandbox Code Playgroud)

选择length元素后面的第一个注释.

编辑

Manoj在回答这个问题时请求为什么这不适用于MSXML.原因是你使用的是MSXML3.默认情况下,MSXML3不使用XPath作为其选择语言,它默认使用较早的弱语言(XSL模式).您需要通过DOMDocument的setProperty方法将XPath设置为选择语言.例如(在JScript中): -

var dom = new ActiveXObject("MSXML2.DOMDocument.3.0");
dom.setProperty("SelectionLanguage", "XPath");
Run Code Online (Sandbox Code Playgroud)

现在,完整的XPath语言将在您的查询中起作用(请注意,一个重大变化是索引器谓词在XPath中为1,而在XSL模式中为0).

  • 或者干脆:/table/comment()[1] (2认同)