我必须从以下代码段中获取值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。
该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;
}
另请参阅我在php的DOMDocument中的解释,以获取节点概念的一般概述。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句