Правильный синтаксис для включения логических выражений в XPath;конкретно нет и - PullRequest
2 голосов
/ 31 июля 2011

Чтобы найти <li> элементов, которые содержат текст «память», но не текст «Графика», я пробовал дюжину вариантов:

//li[contains(text(), "memory")] and li[not contains(text(), "Graphics")]
//li[contains(text(), "memory")] and [not contains(text(), "Graphics")]
//li[contains(text(), "memory") and not contains(text(), "Graphics")]
etc etc

Пока я нашел сообщения наStackoverflow, который указывает на использование отдельных логических операторов, таких как not, я не могу найти ничего, что объясняет, как их объединить для фильтрации текста, как это.В чем прикол?

1 Ответ

2 голосов
/ 31 июля 2011

not () - это функция в XPath, а не оператор. Вы должны написать:

//li[contains(text(), "memory") and not(contains(text(), "Graphics"))]
...