查找具有指定嵌套子元素的所有元素

问题描述:

嗨,我解析了html文档。需要查找具有指定子项的所有元素(可以不是直接子项)。查找具有指定嵌套子元素的所有元素

为前:

<center> 
    <table> 
    ... 
    <a /> 
</center> 

发现有嵌套链接 感谢所有的 “中心” 的标签!

+0

好问题,+1。查看我的答案,获取完整的,13个字符长的解决方案:) – 2011-04-22 04:53:59

使用

//center[.//a] 

这将选择文档中的所有center元素有一个a后代。

这:

//center[.//*/a] 

选择文档中的所有center元件具有一个a后代,这不是本center元素的子元素。

+0

@Dimitre:这是唯一一种'。/''缩写符号具有某种含义的情况。我认为你有一个错字。 – 2011-04-22 15:54:14

+0

@Alejandro:很好,谢谢。固定。最近我一直在做很多事情,所以我有时候心情不寻常。 – 2011-04-22 16:22:26

+0

该任择议定书提到指定的孩子“a”不能是直接的后代。 – ewh 2011-04-22 19:23:00

如何如下:

//center[element()//a] 

这是说发现含有任何“一”元素 是“中心的直接子元素的后裔所有的“中心”的元素。

+1

这不是XPath 1.0语法。 – 2011-04-22 15:53:14

+0

@Alejandro:你是对的。我通常使用XPath 2.0。不必再经常使用XPath 1.0了。 – ewh 2011-04-22 23:31:39

不能在谓词中使用后代轴吗?

//center[descendant::a]