XPath匹配通配符?

时间:2017-11-21 20:40:48

标签: xml xpath

希望在xpath中使用通配符,其中属性是路径,我希望所有路径都以“text”结尾。

示例<Property name="jcr:content/MainParsys/*/text"/>

  • jcr:content/MainParsys不变。
  • *是我想要通配符的地方(中间的所有路径)。
  • text是我正在寻找的路径的最后一部分。

此外,有些路径以/textIsRich结尾,我想避免。

寻找: <Property name="jcr:content/MainParsys/*/text"/>

避免: <Property name="jcr:content/MainParsys/*/text *"/>

1 个答案:

答案 0 :(得分:3)

XPath 1.0

这个XPath,

Promise

将选择所有//Property[@name[ starts-with(.,'jcr:content/MainParsys/') and substring(., string-length(.) - string-length('/text') +1) = '/text']] 个元素,其Property属性的值以name开头,以'jcr:content/MainParsys/'结尾(使用标准XPath 1.0 work-around for no ends-with() function)。

XPath 2.0

XPath 2.0具有'/text'以及matches()等正则函数,可以匹配有效的通配符(ends-with()),例如。