XML::LibXML и одинарные кавычки
Dec. 10th, 2010 12:48 amБерем простой пример
Выводит он все тоже самое, но атрибут в двойных кавычках....
Кто-нибудь что-нибудь осмысленное знает про сохранность кавычек при прогонке xml'я через libxml2 ? Это вообще возможно?
А то поменял скриптом в файле какую-то ерунду, а diff больше самого файла... Неаккуратненько...
use XML::LibXML;
my $xml = "<test some_attr='bbbbb'/>";
my $parser = XML::LibXML->new();
my $doc = $parser->parse_string($xml);
print $doc->toString;Выводит он все тоже самое, но атрибут в двойных кавычках....
Кто-нибудь что-нибудь осмысленное знает про сохранность кавычек при прогонке xml'я через libxml2 ? Это вообще возможно?
А то поменял скриптом в файле какую-то ерунду, а diff больше самого файла... Неаккуратненько...
no subject
Date: 2010-12-09 10:27 pm (UTC)no subject
Date: 2010-12-10 07:16 am (UTC)no subject
Date: 2010-12-10 09:39 am (UTC)Костыль -- канонизировать исходные данные и результат (в том числе убрав незначащие пробелы и расставив переносы строк по смыслу) и потом уже сравнивать текстовым diff-ом. Я так и делаю.
no subject
Date: 2010-12-10 07:35 am (UTC)Ты б ещё пробелы с табуляциями попросил сохранить.
После разбора в дереве libxml2 ничего незначащего нету - ни кавычек, ни whitespace между атрибутами. Восстанавливать неоткуда.
Я б сказал - прогони всё имеющееся один раз через libxml2 для нормализации всех этих случаев, тогда последующие диффы будут значительно ровнее.