web-dev-qa-db-fra.com

Expression XPath pour rechercher des éléments dont le nom de balise contient 'Nom'

Je suis un nouveau venu sur XPath.

Je cherche un moyen d'obtenir tous les éléments dont le nom de balise contient une chaîne particulière.

Par exemple, si j'ai le code XML comme ci-dessous, je souhaite obtenir tous les éléments dont le nom de balise contient le mot "Nom". c'est-à-dire que je veux récupérer les éléments suivants: <SquareName>, <RectangleName> et <ParallelogramName>.

J'ai essayé quelques combinaisons de name(), contains() etc., mais cela n'a pas fonctionné . Merci de le suggérer.

<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

Pour une solution XPath:

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

Puisqu'il n'y a pas de préfixe d'espace de noms, vous pouvez également utiliser 

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