Próbuję dodać wiersz tekstu po pliku h3
etykietka.
Mój początkowy kod HTML to:
<h3>hi</h3>
bez innych tagów ani typów dokumentów. Chcę, aby mój końcowy kod HTML wyglądał następująco:
<h3>hi</h3>
{% include "tester-credit-button" %}
Próbowałem następujące:
page = Nokogiri::HTML::DocumentFragment.parse("my_page.html")
title = page.at_css("h3")
#tried this first
title.children.after("n{% include "tester-credit-button" %}")
#then this
title << "n{% include "tester-credit-button" %}"
#then this
title.after("n{% include "tester-credit-button" %}")
#then this
text_node = Nokogiri::XML::Text.new("n{% include "tester-credit-button" %}"
, page)
title.add_child(text_node)
Odpowiedzi:
-2 dla odpowiedzi № 1Sprawiasz, że jest to zbyt trudne:
require "nokogiri"
doc = Nokogiri::HTML::DocumentFragment.parse("<h3>hi</h3>")
doc.at("h3").next = "n{% include "tester-credit-button" %}"
puts doc.to_html
# >> <h3>hi</h3>
# >> {% include "tester-credit-button" %}
Wróć do twojego kodu ...
page = Nokogiri::HTML::DocumentFragment.parse("my_page.html")
jest źle. Możesz to łatwo sprawdzić za pomocą:
page.to_html # => "my_page.html"
W dokumentacja, kiedy jest napisane „tags
"oznacza to, że musisz przekazać trochę HTML lub XML:
page = Nokogiri::HTML::DocumentFragment.parse("<p><span>foo</span></p>")
page.to_html # => "<p><span>foo</span></p>"
Polecam przestudiować, czym są HTML i XMLustrukturyzowany, ponieważ Twoje eksperymenty sugerują, że nie rozumiesz idei węzłów przeanalizowanych dokumentów, ich możliwych typów oraz ich dzieci i rodzeństwa. Pomogą w tym samouczki Nokogiri, podobnie jak wyszukiwanie tagu w SO oraz czytanie różnych pytań i odpowiedzi. Nokogiri jest potężny i łatwy w użyciu, gdy już opanujesz tę koncepcję.