Как я могу создать nokogiri нечувствительный к регистру селектор Xpath?

Я использую nokogiri для выбора атрибута 'ключевых слов' как это:

puts page.parser.xpath("//meta[@name='keywords']").to_html

Одна из страниц, с которыми я работаю, имеет маркировку ключевых слов с капиталом "K", который заставил меня делать запрос нечувствительным к регистру.

 AND  

Так, мой вопрос: Что лучший способ состоит в том, чтобы сделать nokogiri нечувствительный к регистру выбор?

ОТРЕДАКТИРУЙТЕ предложение Tomalak ниже, работает отлично для этой определенной проблемы. Я хотел бы также использовать этот пример, чтобы помочь понять nokogiri лучше, хотя и имеют пару проблем, что я задаюсь вопросом об и не был успешным поиском. Например, являются regex 'псевдо классами' Документы Nokogiri, подходящие для проблемы как это?

Мне также любопытно на предмет соответствий? () метод в nokogiri. Я не смог найти любое разъяснение по поводу метода. Это имеет какое-либо отношение к понятию 'соответствий' в XPath 2.0 (и поэтому это могло использоваться для решения этой проблемы)?

Большое спасибо.

18
задан Rick 18 February 2010 в 01:46
поделиться

1 ответ

Обернут для удобочитаемости:

puts page.parser.xpath("
  //meta[
    translate(
      @name, 
      'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 
      'abcdefghijklmnopqrstuvwxyz'
    ) = 'keywords'
  ]
").to_html

В XPath 1.0 нет функции «переводить нижний регистр», поэтому вы должны использовать translate () для такого рода вещей. При необходимости добавьте буквы с диакритическими знаками.

9
ответ дан 30 November 2019 в 08:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: