【问题标题】:fetching value using DOMDocument in php在 php 中使用 DOMDocument 获取值
【发布时间】:2015-04-03 13:00:06
【问题描述】:

我必须从下面的代码 sn-p...中获取价值 $1999.00...

<span class="mainprodpricez" itemprop="price">$1999.00
<span style="font-size:0.4em;display:block;"> including $100 cashback from Shopper</span>
<span style="font-size:0.4em;display:block;font-weight:bold;color:#cc0000;float:left;">You pay $2249.00 today. </span>
Details and claim form.</a></span>

为此,我完成了以下编码:

foreach($dom->getElementsByTagName('span') as $p) {

    if($p->getAttribute('class') == 'mainprodpricez') {

            $name = $p->nodeValue;

            }
}

这给了我以下结果:

Â$1999.00 including ÂÂ$100 cashback from Shopper You pay Â$2249.00 today. Details and claim form 

实际上它获取了 span 类 mainprodpricez 的整个 nodeValue...谁能帮我解决这个问题。

【问题讨论】:

  • 你到底要追求哪个元素或价值? $1999,00?

标签: php


【解决方案1】:

nodeValue 属性为您提供所有子节点的组合 文本。您只想获取第一个子文本节点的文本值。

将代码更改为

$name = $p->firstChild->nodeValue;

您也可以使用 XPath:

$xpath = new DOMXPath($dom);
$query = '//span[@class="mainprodpricez"]/text()[1]';
foreach ($xpath->evaluate($query) as $price) {
    echo $price->nodeValue;
}

有关节点概念的一般概述,请参阅我在 DOMDocument in php 中的解释。

【讨论】:

猜你喜欢
  • 2012-07-08
  • 2018-03-22
  • 2011-10-13
  • 2015-09-28
  • 1970-01-01
  • 2021-07-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-18
相关资源
最近更新 更多