【问题标题】:How do I use XPath to select the text at the end of this element?如何使用 XPath 选择此元素末尾的文本?
【发布时间】:2018-02-01 02:07:49
【问题描述】:

我的元素看起来是两种方式之一。有些是这样的:

<p class="pricing ats-product-price">$3.97</p>

还有一些是这样的:

<p class="pricing ats-product-price"><em class="old_price">$8.97</em>$3.97</p>

如何可靠地从元素中选择 LAST 编号(在本例中为 $3.97)并忽略第一个?

我当前使用的代码是:

$prices = $xpath->query('//p[@class="pricing ats-product-price"]');

但在第二种样式的情况下,它将返回$8.973.97。我只想要$3.97

【问题讨论】:

    标签: php xml xpath domdocument


    【解决方案1】:

    在这两种情况下,$3.97 都位于 p 元素的文本节点子节点中。

    因此这个 XPath,

    //p[@class="pricing ats-product-price"]/text()
    

    将选择

    $3.97
    

    在这两种情况下。

    【讨论】:

    • 哇,我不知道我怎么忽略了这一点。谢谢你。还在学习 XPath。
    • @user393466:不客气。如果有帮助,请accept这个答案。谢谢。
    • 这是一个非常罕见的情况,其中 text() 是正确的答案!更常见的是人们在不应该使用 text() 时使用;但你的 XML 结构不寻常。
    猜你喜欢
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多