我是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>
答案 0 :(得分:29)
对于XPath解决方案:
//*[contains(local-name(), 'Name')]
答案 1 :(得分:0)
由于没有命名空间前缀,您也可以使用
//*[contains(name(), 'Name')]