查找具有指定嵌套子元素的所有元素
嗨,我解析了html文档。需要查找具有指定子项的所有元素(可以不是直接子项)。查找具有指定嵌套子元素的所有元素
为前:
<center>
<table>
...
<a />
</center>
发现有嵌套链接 感谢所有的 “中心” 的标签!
使用:
//center[.//a]
这将选择文档中的所有center
元素有一个a
后代。
这:
//center[.//*/a]
选择文档中的所有center
元件具有一个a
后代,这不是本center
元素的子元素。
@Dimitre:这是唯一一种'。/''缩写符号具有某种含义的情况。我认为你有一个错字。 – 2011-04-22 15:54:14
@Alejandro:很好,谢谢。固定。最近我一直在做很多事情,所以我有时候心情不寻常。 – 2011-04-22 16:22:26
该任择议定书提到指定的孩子“a”不能是直接的后代。 – ewh 2011-04-22 19:23:00
如何如下:
//center[element()//a]
这是说发现含有任何“一”元素 是“中心的直接子元素的后裔所有的“中心”的元素。
这不是XPath 1.0语法。 – 2011-04-22 15:53:14
@Alejandro:你是对的。我通常使用XPath 2.0。不必再经常使用XPath 1.0了。 – ewh 2011-04-22 23:31:39
不能在谓词中使用后代轴吗?
//center[descendant::a]
好问题,+1。查看我的答案,获取完整的,13个字符长的解决方案:) – 2011-04-22 04:53:59