получить слово после определенного ключевого слова, такого как «имя Prasaanth» - PullRequest
0 голосов
/ 07 сентября 2011

как я могу получить дату с помощью ruby ​​/ nokogiri из этого:

<p class="class1">
                    Expires 15/07/2011. that is my graduation day.</p><p>something else here</p>

Я хочу узнать дату. Я читаю форум, который предлагает мне использовать что-то вроде:

exp = node.at('[text()="Expires"]').next.text 
return exp

но он не работает, пожалуйста, помогите.

1 Ответ

1 голос
/ 07 сентября 2011

Это:

exp = node.at('[text()="Expires"]')

не будет работать, потому что он ищет текстовые узлы, которые точно равны "Expires", и вы ищете текстовые узлы, которые соответствуют /^\s*Expires/. Возможно, вы могли бы найти свой <p> с кучей неприятных XPath или вы могли бы найти абзацы и выполнить поиск в Ruby:

doc  = Nokogiri::HTML(your_html)
node = doc.search('p').find { |n| n.content[/^\s*Expires/] }
return nil if(!node)
exp = node.content.match(/\d{2}\/\d{2}\/\d{4}/)
return exp ? exp[0] : nil
...