我看到一个关于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位的正增量之前发生的事情)
我确定我做错了所以非常感谢任何帮助。
希望这是有道理的。如果需要,很乐意澄清更多信息!
答案 0 :(得分:0)
要检查任何级别的“父母”,请使用祖先
尝试这样的事情(未经测试):
(//*[@id="all_totals"]/div[1]/div
/span[ ancestor::*/span[contains( text(), "text" )] and position() = 6
or position() = 7 ])[1]