Использование прописных и строчных функций xpath в IDE Селена - PullRequest
24 голосов
/ 26 октября 2009

Я пытаюсь получить запрос xpath с помощью функции xpath lower-case или upper-case, но, похоже, они не работают в селене (где я проверяю свой xpath до его применения).

Пример, который НЕ работает:

//*[.=upper-case('some text')]

У меня нет проблем с поиском нужных мне узлов в сложном пути и даже с использованием агрегированных функций, если я не использую верхний и нижний регистр.

Кто-нибудь сталкивался с этим раньше? Имеет ли это смысл?

Спасибо.

Ответы [ 2 ]

55 голосов
/ 26 октября 2009

upper-case() и lower-case() являются функциями XPath 2.0. Скорее всего, ваша платформа поддерживает только XPath 1.0.

Попытка:

translate('some text','abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')

что является XPath 1.0 способом сделать это. К сожалению, это требует знания алфавита, который использует текст. Для простого английского языка вышеупомянутое, вероятно, работает, но если вы ожидаете символы с акцентом, обязательно добавьте их в список.

2 голосов
/ 31 декабря 2009

Если вам понадобится верхний регистр в нескольких местах в вашем xslt, вы можете определить переменные для нижнего и верхнего регистра, а затем использовать их в вашей функции перевода везде. Это должно сделать ваш xslt намного чище.

Пример на XSL / XPATH: в MSXML 4.0 нет функции верхнего регистра?

...