我有一些像这样的HTML:
<dd class="price">
<sup class="symbol">$</sup><span class="dollars">58</span><sup class="cents">.00</sup>
</dd>
将$ 58.00作为一个字符串返回的xpath是什么?
我正在使用PHP:
$xpath = '?????';
$result = $xml->xpath($xpath);
echo $result[0]; // want this to show $58.00, possible?
答案 0 :(得分:3)
这些在您的情况下有效,请查看以下链接的更多详细信息;
$html = '<dd class="price">
<sup class="symbol">$</sup><span class="dollars">58</span><sup class="cents">.00</sup>
</dd>';
$dom = new DOMDocument();
$dom->loadXML($html);
$xpt = new DOMXpath($dom);
foreach ($xpt->query('//dd[@class="price"]') as $node) {
// outputs: $58.00
echo trim($node->nodeValue);
}
// or
$xml = new SimpleXMLElement($html);
$res1 = $xml->xpath('//dd[@class="price"]/sup');
$res2 = $xml->xpath('//dd[@class="price"]/span');
// outputs: $58.00
printf('%s%s%s', (string) $res1[0], (string) $res2[0], (string) $res1[1]);
答案 1 :(得分:0)
data()
将返回当前上下文中的所有内容。尝试
//dd/data()
答案 2 :(得分:0)
您尚未向我们展示您的代码,因此我不知道您使用的是哪个平台。如果您有能够评估非节点XPath表达式的内容,那么您可以使用:
string(//dd[@class = 'price'])
如果没有,您可以选择节点
//dd[@class = 'price']
并且您正在使用的API应该能够获取所选节点的内部文本值。