Вставка элемента в локальный HTML-файл - PullRequest
0 голосов
/ 15 октября 2010

Я пытаюсь написать скрипт на Ruby, который будет читать локальный HTML-файл и вставлять в него еще немного HTML (в основном, строки) после определенного # divid.

Я вроде как нуб, поэтому, пожалуйстаНе стесняйтесь вставлять код здесь.

Спасибо

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Мне удалось это, следуя ...

doc = Nokogiri::HTML(open('file.html'))
data = "<div>something</div>"
doc.children.css("#divid").first.add_next_sibling(data)

А затем (пере) записать файл с теми же данными ...

File.open("file.html", 'w') {|f| f.write(doc.to_html) }
0 голосов
/ 20 октября 2010

Это немного более правильный способ сделать это:

html = '<html><body><div id="certaindivid">blah</div></body></html>'
doc = Nokogiri::HTML(html)
doc.at_css('div#certaindivid').add_next_sibling('<div>junk goes here</div>')

print doc.to_html 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<div id="certaindivid">blah</div>
<div>junk goes here</div>
</body></html>

Обратите внимание на использование .at_css(), которое находит первое вхождение целевого узла и возвращает его, избегая возврата набора узлов,и освобождает вас от необходимости захватывать узел .first().

...