2016-08-22 2 views
1

Я хотел получить каноническую версию куска xml с помощью nokogiri, хотя его метод canonicalize возвращает пустую строку.Nokogiri :: XML :: document canonicalize метод возвращает пустую строку

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

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

+1

Я не согласен с тем, как этот вопрос был закрыт. Библиотека не обеспечивает правильную ошибку, и оригинальная опечатка не была причиной указанной проблемы. Правильный ответ матовый. Закрытие этого вопроса было оскорбительной умеренностью. –

ответ

1

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

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

Вместо этого используйте Document::parse или XML() method on the Nokogiri module:

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>" 
Смежные вопросы