0

一部のサブツリーが ID タグでマークされている XML ファイルがあります。

<root>
  <A>
    <someid>5</someid>
    ...
  </A>
  <B>
    <someid>15</someid>
    ...
  </B>
</root> 

XPath を使用してこの ID でサブツリーを検索しようとするcontains()と、明らかに、5 や 15 などの数字で問題が発生しました。

//someid[ contains( text(), "5" ) ]

使用しようとしましmatches()たが、サポートされていません。

試合なしでこれに取り組む方法はありますか?

4

2 に答える 2

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ます。

ライブデモ

于 2013-03-08T08:57:28.757 に答える
1

ID がすべて数字の場合は、

//someid[number()=5]

match() と正規表現を使用することもできます

//someid[matches(text(),"^5$")]
于 2013-03-08T09:06:58.147 に答える