Xpath查询以匹配序列中的即时兄弟节点
我是XPATH的新手,我想知道是否有一种使用XPATH查询的方法。Xpath查询以匹配序列中的即时兄弟节点
我想匹配一个XML树中的连续兄弟节点到某些预定义的规则,例如,如果有三个兄弟节点一个接一个出现并且它们具有属性value =“A”,value =“B”和值=“C”,我希望XPATH查询匹配这样一个序列中的第一个节点/最后一个节点,并且我想从XML树中提取所有这些连续的节点序列,以便稍后处理它们。
谢谢!
注意:这并不回答问题。写这个的时候我误解了它。
要查询它们, 使用position()=1 or position()=last()
作为谓词,可能还有其他用于选择节点的谓词。
这就是它看起来像在XpathVisualizer:
alt text http://i40.tinypic.com/2ir15j4.jpg
“提取他们” 不是的XPath的事情。为此,您可以枚举选定的元素,然后做任何你喜欢的事情,这取决于你。
这里是一个可能的解决方案:
第一:
我想在一个XML树连续兄弟 节点匹配例如某些 预定义的规则,如果有 三个兄弟节点发生 立即一个接着一个并且 它们具有属性值=“A”, value =“B”和值=“C”,
//*[@value='A'
and
following-sibling::*[1]/@value='B'
and
following-sibling::*[2]/@value='C']
然后:
我想提取XML树 节点的所有这样的连续 序列...
//*[@value='A'
and
following-sibling::*[1]/@value='B'
and
following-sibling::*[2]/@value='C']
|
//*[@value='A'
and
following-sibling::*[1]/@value='B'
and
following-sibling::*[2]/@value='C']
/following-sibling::*[position() = 1 or position()=2]
下面是如何选择的外观就像在真正的XPathVisualizer中一样(_http://www.topxml.com/xpathvisualizer/) - 这个链接有一个木马 - 只有当你有很好的malwa重新保护。另外,联系我的应用程序):
alt text http://i42.tinypic.com/dxbtso.jpg
最后:
我想XPath查询到 第一个节点/最后一个节点在这样的 序列匹配
//*[@value='A'
and
following-sibling::*[1]/@value='B'
and
following-sibling::*[2]/@value='C']
|
//*[@value='A'
and
following-sibling::*[1]/@value='B'
and
following-sibling::*[2]/@value='C']
/following-sibling::*[position()=2]
一些说明性的示例XML将会有帮助。 – ndim 2010-04-22 15:12:00