我是XPath的新手。XPath表达式查找标签名称包含'Name'的元素
我正在寻找一种方法来获取其标签名称包含特定字符串的所有元素。例如,如果我的XML如下所示,我想获取其标签名称包含单词'Name'的所有元素。即,我想获取以下元素:<SquareName>
,<RectangleName>
和<ParallelogramName>
。
我尝试了name()
,等的一些组合,但它没有奏效。 请建议。
<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>
看结果后,我发现元素之中的,返回,我需要避免一个标签名称为'PeriodName'的元素。我可以编程的方式做到这一点,但想知道XPath是否也有解决方案? – user2082317 2013-02-18 09:59:39
您可以使用正则表达式,或者只使用正则表达式,或者只使用正则表达式,或者使用正则表达式,或者使用另一个谓词(或者使用'或'将它们合并):'// * [contains(local-name(),'Name')] [local-name )!='PeriodName']' – 2013-02-18 10:03:51