0

谁能帮我这个?无论我尝试什么,我都无法从这个 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>
4

1 回答 1

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

在这种情况下应该给你你需要的东西——它将选择直接位于面包屑 div 下的所有文本节点的集合。如果您想专门针对最后一个(例如,如果有两个以上级别的面包屑,并且还有另一个文本节点用于,例如,两个a元素之间的斜线),那么稍微更具体

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

可能会更好。

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

于 2013-11-14T08:55:41.087 回答