我有以下两个td元素
<TD ALIGN="LEFT" VALIGN="top" WIDTH="150" STYLE="font-size: 11px; font-family: arial" HEIGHT="65"> <a href="http://www.site.com/page/IDLM/PROD/10001512"><B><i>Brand </i></B><BR>Title</a><BR>
$65.00
</TD>
<TD ALIGN="LEFT" VALIGN="top" WIDTH="35"> </TD><TD ALIGN="LEFT" VALIGN="top" WIDTH="150" STYLE="font-size: 11px; font-family: arial" HEIGHT="65"> <a href="http://www.site.com/page/IDLM/PROD/10001511"><B><i>Brand </i></B><BR>Title</a><BR>
<span style="color: #999999; font-weight: normal;"><strike>$212.00</strike></span> <B>$127.20</B>
</TD>
我想从两者中检索最终价格($ 65.00和$ 127.20)。我可以用
//td/br[last()]/following-sibling::text()[1]|//td/br[last()]/following-sibling::b[1]
返回
[0] =>
$65.00
[1] => Â Â
[2] => $127.20
其中[1]是第二个价格之前的
。是否有一个只检索
[0] =>
$65.00
[1] => $127.20
答案 0 :(得分:1)
在这两种情况下,所讨论的文本都是最终的非空文本节点后代。这就是你用英语描述它的方式;这是如何在XPath中说出来的:
//td/descendant::text()[normalize-space()][last()]
答案 1 :(得分:0)
我没试过这个,但在我看来,在这个特殊情况下,
//td/br[last()]/following-sibling::*[last()]
可能有效,因为包含$65.00
的文本节点和包含B
的{{1}}节点都是他们兄弟姐妹中的最后一个。