XPath查询(带有一些简单的正则表达式限制)

时间:2012-05-06 15:14:08

标签: xml regex xpath

考虑一下我得到了以下XML文件?

<result>
    <_id>-3:1</_id>
    <_ver>0</_ver>
    <_class>Address</_class>
    <type>Residence</type>
    <street>Piazza di Spagna</street>
    <city>-4:0</city>
</result>

查询以下各项的xpath是什么:

  1. 对于所有不以“_”开头的标签。 所以我希望类似:类型,街道,城市
  2. 所有不以“_”开头的代码的文本正文。 所以我希望如下:Residence,Piazza di Spagna,-4:0

2 个答案:

答案 0 :(得分:2)

使用XPath 2.0或XQuery 1.0,您可以使用

  1. /result/*/local-name(.)[not(starts-with(., '_'))]
  2. /result/*[not(starts-with(local-name(), '_'))]/string(.)

答案 1 :(得分:2)

使用XPath 1.0 (当然,这也是XPath 2.0解决方案):

  1. /*/*[not(starts-with(name(), '_'))]

  2. /*/*[not(starts-with(name(), '_'))]/text()