当前位置:  开发笔记 > 编程语言 > 正文

"所有节点恰好位于基节点之下的所有节点?"的正确XPath是什么?

如何解决《"所有节点恰好位于基节点之下的所有节点?"的正确XPath是什么?》经验,为你挑选了2个好方法。

假设我不知道我的基节点或其子节点的名称,"所有节点恰好在基节点下面的一个节点的XPath语法是什么?"

使用pattern作为XmlNode,我有以下代码:

XmlNodeList kvpsList = pattern.SelectNodes(@"//");

哪个看起来对我来说,但我得到以下例外:

   System.Xml.XPath.XPathException: Expression must evaluate to a node-set.

什么是正确的语法?



1> Welbog..:

你正在寻找的路径是

/*/*

//不是一个有意义的XPath表达式,因为它是一个运算符.如果你写了类似的东西//element,它将匹配elementXML文档中任何位置命名的每个元素,无论它在层次结构中有多深.

/*/* 正在说"匹配层次结构中具有两个深度级别的每个节点".



2> Dimitre Nova..:

目前的两个答案是错误的:

/*/*

不会选择作为顶级节点的子节点的所有节点.它不会选择任何文本节点,处理指令或注释作为顶部元素的子元素.

一个XPath表达式,用于选择top元素的arte子节点的所有节点:

/*/node()

//不是语法上正确的XPath表达式; 根据XPath规范:

//是/ descendant-or-self :: node()/的缩写

请注意扩展缩写末尾的未完成位置步骤的开头.如果没有添加任何内容,则包含缩写的整个XPath表达式已完成,因此在语法上不正确.

另一个注意事项是,//在指定作为顶部元素的子节点的所有节点的选择时,缩写不是必需的.如果要选择XML文档中从顶部元素下降的所有节点,则选择这些节点的一个XPath表达式为:

/*//node()

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有