27

私はXPathの初心者です。

タグ名に特定の文字列が含まれているすべての要素を取得する方法を探しています。

たとえば、次のようなXMLを使用している場合、タグ名に「Name」という単語が含まれているすべての要素を取得します。つまり、次の要素をフェッチしたい:<SquareName>、、、。<RectangleName><ParallelogramName>

name()、などの組み合わせをいくつか試しcontains()ましたが、うまくいきませんでした。提案してください。

<Objects>
 <Four-Sided>
   <Square>
      <SquareName>ABCD</SquareName>
      <Length>4</Length>
      <Height>4</Height>
      <Colour>Blue</Colour>
   </Square>
   <Rectangle>
      <RectangleName>EFGH</RectangleName>
      <Length>10</Length>
      <Height>6</Height>
      <Colour>Brown</Colour>
   </Rectangle>
   <Parallelogram>
      <ParallelogramName>WXYZ</ParallelogramName>
      <Length>12</Length>
      <Height>4</Height>
      <Colour>Black</Colour>
   </Parallelogram>
</Four-Sided>
</Objects>
4

2 に答える 2

38

XPathソリューションの場合:

//*[contains(local-name(), 'Name')]
于 2013-02-18T09:18:27.660 に答える
1

名前空間プレフィックスがないため、次を使用することもできます

//*[contains(name(), 'Name')]
于 2016-10-19T07:11:06.287 に答える