webentwicklung-frage-antwort-db.com.de

XPath-Ausdruck zum Suchen von Elementen, deren Tag-Name 'Name' enthält

Ich bin ein Neuling in XPath.

Ich suche nach einer Möglichkeit, alle Elemente abzurufen, deren Tag-Name eine bestimmte Zeichenfolge enthält.

Wenn ich beispielsweise XML wie unten habe, möchte ich alle Elemente abrufen, deren Tag-Name den Wortnamen enthält. Ich möchte die folgenden Elemente abrufen: <SquareName>, <RectangleName> und <ParallelogramName>.

Ich habe einige Kombinationen von name(), contains() usw. ausprobiert, aber es hat nicht funktioniert . Bitte schlagen Sie vor.

<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>
20
user2082317

Für eine XPath-Lösung:

//*[contains(local-name(), 'Name')]
27
Jens Erat

Da es kein Namespace-Präfix gibt, können Sie auch verwenden 

//*[contains(name(), 'Name')]
0
farooq