1

如果你有一个字符串,让我们假设:AB--AB. 我想查找具有 xpath 的节点,这AB??AB意味着节点属性中的问号是某种占位符 - 它们的出现量可能会有所不同,因此它也应该匹配AB?-AB例如。你怎么能解决这个问题?

4

2 回答 2

2

使用 XPath 1.0 ,您必须坚持使用substring(....)substring-before(....)substring-after(....)和. 可悲的是,甚至没有一个功能。starts-with(...)string-length(...)ends-with(...)

允许所有以“AB”开头和结尾的字符串以及至少介于两者之间的字符的可能解决方案可能是(我不完全确定您的需求):

//foo[
    starts-with(., 'AB')
  and
    substring(., string-length(.)-1, 2) = 'AB'
  and
    string-length(.) >= 6
  ]
于 2013-09-25T15:18:46.563 回答
2

XPath 2.0 支持正则表达式:matches($string, 'AB.{0,2}AB')如果字符串是一个由文字AB后跟零、一个或两个任意字符后跟文字的序列,则匹配AB

于 2013-09-25T14:40:15.977 回答