Удаление элементов с помощью Nokogiri - PullRequest
0 голосов
/ 09 июля 2011

Используя Nokogiri, как мне удалить все, вплоть до элемента body документа HTML?А также закрывающий элемент тела и все после?

1 Ответ

3 голосов
/ 09 июля 2011

Самый простой способ (IMHO, конечно) - использовать XPath для извлечения элемента <body>:

html = '<html><head><title>xxx</title></head><body><p>dsfkj</p><p><b>sdff</b> dsfsdf</p></body></html>'
doc  = Nokogiri::HTML(html)
body = doc.xpath('//body')

Теперь у вас есть только элемент <body> (и его дочерние элементы) в body. Затем, чтобы получить HTML:

body_html = body.to_s
# "<body>\n<p>dsfkj</p>\n<p><b>sdff</b> dsfsdf</p>\n</body>"

Хитрость заключается в том, чтобы извлечь то, что вы хотите, а не пытаться выбросить то, что вы не хотите. Конечный результат тот же, но найти одну вещь, которую вы хотите, проще, чем найти кучу вещей, которые вам не нужны, когда в вашем распоряжении есть язык запросов.

...