Nokogiri::XML::document канонический метод возвращает пустую строку

Я хотел получить канонизированную версию фрагмента xml с помощью noko giri, хотя его метод canonicalize возвращает пустую строку.

d= Nokogiri::XML::Document.new '<a><z></z><b c="d">e</b></a>'
d.canonicalize #=> ""

Кто-нибудь знает, что я делаю не так? Я использую Nokogiri 1.6.7

1 ответ

Решение

Document::new на самом деле не анализирует документ. Вы просто создаете пустой документ с довольно странной версией XML:

d.to_xml
#=> "<?xml version='<a><z></z><b c=\"d\">e</b></a>'?>\n"

Вместо этого используйте Document::parse, или XML() метод на Nokogiri модуль:

d = Nokogiri::XML::Document.parse '<a><z></z><b c="d">e</b></a>'
d.canonicalize #=> "<a><z></z><b c=\"d\">e</b></a>"
Другие вопросы по тегам