XPATH - 使用嵌套文本从DIV获取内容

时间:2013-11-14 08:19:20

标签: xpath

任何人都可以帮我吗?无论我尝试什么,我都无法抓住这个div中的'Blue Shoes'文字!已经超过一个小时了,仍然无法解决。尝试:

//div[@class='breadcrumbs']/text(
//div[@class='breadcrumbs']
//div[@class='breadcrumbs']/div

似乎没什么用。任何帮助很多人赞赏。

<div class="breadcrumbs"><a href="http://www.example.aspx" style="color:#e16a58;">Home</a>/Blue Shoes</div>
                </div>

1 个答案:

答案 0 :(得分:0)

//div[@class='breadcrumbs']/text()
在这种情况下,

应该为您提供所需的内容 - 它将选择直接位于breadcrumbs div下的所有文本节点的集合。如果你想专门针对最后一个(例如,如果有多于两个级别的痕迹并且还有另一个文本节点,比如两个a元素之间的斜线)那么稍微更具体

//div[@class='breadcrumbs']/text()[last()]

可能会更好。

如果这不起作用,那么我可以想到另外两种可能性。首先,HTML DOM使用大写字母作为元素名称,并且由于XPath区分大小写,您可能会发现需要//DIV而不是//div。或者可能存在命名空间问题 - 如果您的文档在根元素上有xmlns="...",那么将div元素放在命名空间中,xpath中没有前缀的名称引用 no 命名空间中的节点。要选择命名空间节点,您必须将前缀绑定到相应的命名空间URI,然后在表达式中使用前缀(//xhtml:div)。具体如何映射前缀取决于您用于执行xpath查询的库/工具/语言。