2014-04-25 56 views
0

如何在没有获得11.50美元的情况下获得10.99美元?xpath:如何从标签内部获取部分数据

我的代码变得既和我不想要什么罢工标签:

$price = trim($tmp_xpath->query("//div[@class='ProductPriceRating']/em")->item(0)->nodeValue); 

这里的HTML:

<div class="ProductPriceRating"> 
    <em><strike class="RetailPriceValue">$11.50</strike> $10.99</em> 
    <span class="Rating Rating5"><img src="images/IcoRating5.gif" alt="" style="" /></span> 
</div> 

回答

1

刚刚获得text()em的元素:

//div[@class='ProductPriceRating']/em/text() 

以下是$price的具体内容:

$price = trim($tmp_xpath->query("//div[@class='ProductPriceRating']/em/text()")->item(0)); 

或者,如@adamretter指出,更好地利用normalize-space()代替trim()

$price = $tmp_xpath->query("normalize-space(//div[@class='ProductPriceRating']/em/text())")->item(0); 
+0

谢谢!我会尽快接受 –

+0

而不是使用主机语言中的“trim()”。你可以在XPath中使用'normalize-space()',这在处理不同的'text()'节点时可能更加可靠。例如(0);' – adamretter

+0

@adamretter这是绝对的,这是一个很好的解决方案。好点,谢谢。 – alecxe