2014-11-06 2 views
0

Я новичок в xpath и долгое время блуждал по www, чтобы получить ответ. Нашел несколько ссылок, но не смог получить ответ.Xpath: строковые функции не работают нормально

У меня есть следующие XPath для конкретного сценария, и он работает нормально

//li[contains(@class,'category_')]/a[contains(@href,'suits')] 

Теперь, когда я пытался сделать вещь выше, используя функцию строки для учебных целей, она не работает. В качестве альтернативы я попробовал следующий xpath.

//li[contains(@class,'category_')]/a[contains(@href,lower-case("SUITS"))] 
//li[contains(@class,'category_')]/a[contains(@href,lower-case('SUITS'))] 

Что я здесь делаю неправильно? Пожалуйста, помогите.

+0

Не говорите нам, что что-то «не работает». Расскажите, как это случилось. (-> Downvoting). –

+0

Я думаю, что он понял, почему он не работает. Это не работает, возможно, из-за стандартов или некоторого синтаксиса, нужно ли мне упоминать об этом? –

+0

Вы пропустили точку. Сканирование кода, чтобы понять, почему это неправильно, занимает 20 секунд; если вы сообщите нам об ошибке, это займет всего 5 секунд. Не сообщая нам сообщение об ошибке, вы тратите свое время. –

ответ

2

XPath 1.0 был указан в 1999 году и определяет функцию contains. XPath 2.0 был указан в 2007 году и defines the lower-case function. Последняя версия - XPath 3.0. Если вы хотите использовать функцию lower-case, вам необходимо использовать реализацию XPath 2.0 или 3.0 или, альтернативно, реализацию XQuery 1.0 или 3.0, поскольку XPath является в основном подмножеством XQuery. Я подозреваю, что вы используете реализацию XPath 1.0 и просто получаете сообщение об ошибке, что функция lower-case неизвестна.

+0

Спасибо за достаточную информацию. –

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