我有一个XML文件,其中一些子树标有ID-Tags
<root>
<A>
<someid>5</someid>
...
</A>
<B>
<someid>15</someid>
...
</B>
</root>
如果我尝试在XPath contains()
的帮助下通过此ID找到子树,显然,遇到了像5和15这样的数字的问题:
//someid[ contains( text(), "5" ) ]
我尝试使用matches()
,但不支持。
如何在没有匹配的情况下解决这个问题?
答案 0 :(得分:1)
//someid[text()="5"]
我不确定您使用哪种语言,因此我将在PHP演示:
$str=<<<XML
<root>
<A>
<someid>5</someid>
</A>
<B>
<someid>15</someid>
</B>
</root>
XML;
$xml=simplexml_load_string($str);
foreach($xml->xpath('//someid[text()="5"]') as $node)
{
echo $node;
}
输出5
。
答案 1 :(得分:1)
如果您的ID都是数字,则可以使用
//someid[number()=5]
您也可以使用matches()和regexp
//someid[matches(text(),"^5$")]