2013-09-25 4 views
1

Если у вас есть String, давайте предположим: AB--AB. Я хочу искать узлы с xpath, который может быть AB??AB, что означает, что вопросительные знаки в атрибуте node являются своего рода заполнителем - и они могут варьироваться в зависимости от их количества, поэтому его также следует сопоставлять с AB?-AB. Как вы можете это решить?XPath: Как искать с AB - AB для AB? AB или AB? -AB

ответ

2

XPath 2.0 поддерживает регулярное выражение: matches($string, 'AB.{0,2}AB') будет соответствовать, если строка представляет собой последовательность литерала AB, за которым следует ноль, один или два произвольных символа, за которыми следует буква AB.

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 
    ] 
+0

Мне нравится, как вы написали выражение xpath .. :) Синтаксис style.So * + 1 * –

Смежные вопросы