繁体   English   中英

DomXPath选择

[英]DomXPath Selecting

我在选择所需的DomXPath时遇到问题。 我有一个像

<div id="a">
  Something
    <nobr> Inside </nobr>
</div>

我想要的是仅选择“某物”而不是“内部”。 我知道如何像//div[@id='a']一样同时选择'Inside'或它们两者,然后调用$obj->nodeValue ,但是我找不到唯一选择'东西。 有人可以帮我吗? 谢谢。

编辑:如果将Something更改为Something 123456,您还可以提示我如何仅选择数字值作为123456作为奖励吗?

在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;

演示版

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM