使用Xpath确定任何子元素中是否存在任何文本出现?

时间:2016-05-05 00:57:43

标签: python xpath

我看到一个关于XML文档的问题,但我有一个HTML文档,想知道它是否有效。

我正在尝试遍历许多HTML页面并确定是否存在包含文本“text”的span元素的任何实例:

//*[@id="all_totals"]/div[1]/div/span[7]//span[text()="Export"]

链接到HTML图片:http://f.cl.ly/items/290L2v373y3c3P050x2m/Image%202016-05-05%20at%202.59.25%20PM.png

在上面的Xpath中,我想要的父元素在第二个“div”结束。我添加了其余的(“/ span [7] ...”)作为我想要抓取的特定元素。我想检查父元素中包含的任何跨度是否包含文本“text”,因为,如果它们中的任何一个,我想要的span元素将是[6]而不是[7](“text”span偶尔的额外事件发生在我希望导致1位的正增量之前发生的事情)

我确定我做错了所以非常感谢任何帮助。

希望这是有道理的。如果需要,很乐意澄清更多信息!

1 个答案:

答案 0 :(得分:0)

要检查任何级别的“父母”,请使用祖先

尝试这样的事情(未经测试):

 (//*[@id="all_totals"]/div[1]/div
     /span[ ancestor::*/span[contains( text(), "text" )] and position() = 6 
         or position() = 7 ])[1]