XPath expression to find elements whose tag name contains 'Name'

有些话、适合烂在心里 提交于 2019-12-18 13:59:35

问题


I am a newcomer to XPath.

I am looking for a way to get all elements whose tag name contains a particular string.

For example, if I have XML like below, I want to get all the elements whose tag name contains the word 'Name'. i.e., I want to fetch the following elements: <SquareName>, <RectangleName>, and <ParallelogramName>.

I tried some combinations of name(), contains() etc., but it did not work. Please suggest.

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

回答1:


For an XPath solution:

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



回答2:


Since there is no Namespace prefix, you can also use

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


来源:https://stackoverflow.com/questions/14931499/xpath-expression-to-find-elements-whose-tag-name-contains-name

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!