我对DomXPath有一个问题,就是选择我需要的东西。我有一个像
这样的结构<div id="a">
Something
<nobr> Inside </nobr>
</div>
我想要的只是选择'Something'而不是'Inside'。我知道如何在//div[@id='a']
之内同时选择“内部”或两者,然后调用$obj->nodeValue
,但我找不到只选择“Something”的方法。有人可以帮我这个吗?
感谢。
编辑:如果某些内容已更改为Something 123456,您还可以提示我如何仅选择数字值123456作为奖励吗?
答案 0 :(得分:1)
在xpath中找到文本节点内的数字非常重。相反,您可以在PHP中使用正则表达式来解析textnode的文本以获取值:
$doc = new DomDocument;
$doc->loadXML($xml);
$xpath = new DOMXPath($doc);
$text = $xpath->query("/div[@id='a']/child::text()")->item(0)->nodeValue;
$r = preg_match('~\d+~', $text, $matches);
list($number) = $matches;