XPath表达式找到的元素,其标签名称中包含“名称”(XPath expression to fin

2019-07-20 02:05发布

我初来乍到的XPath。

我正在寻找一种方式来获得它的变量名中含有特定字符串的所有元素。

举例来说,如果我有XML像下面,我想所有那些标签名称包含单词“名称”的元素。 即,我要取以下元素: <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>

Answer 1:

对于一个XPath的解决方案:

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


Answer 2:

由于没有命名空间前缀,你也可以使用

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


文章来源: XPath expression to find elements whose tag name contains 'Name'