任何人都可以帮我吗?无论我尝试什么,我都无法抓住这个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>
答案 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查询的库/工具/语言。