Как сопоставить значение без учета регистра с XPath - PullRequest
3 голосов
/ 04 января 2011

У меня есть XPath, с которым я пытаюсь сопоставить метатеги, которые имеют атрибут name, со значением, содержащим слово «ключевое слово», независимо от регистра.В основном я пытаюсь сопоставить:

<meta name="KEYWORDS">
<meta name="Keywords">
<meta name="keywords">

с XPath

'descendant::meta[contains(lower-case(@name), "keyword")]/@content'

Я использую Scrapy и его встроенные селекторы, но когда я пробую этот XPath, явыдается ошибка «Неверный XPath: ...».Что я делаю не так и как правильно делать то, что я хочу?

1 Ответ

10 голосов
/ 04 января 2011

Селекторы Scrapy созданы на основе библиотеки libxml2, которая, AFAIK, не поддерживает XPath 2.0. По крайней мере, libxslt не точно.

Вы можете использовать XPath 1.0 translate () для решения этой проблемы. В целом это будет выглядеть так:

translate(yourString, 
          'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 
          'abcdefghijklmnopqrstuvwxyz')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...