Escape-сущность в XML-файлах
Я конвертировать XML в XML-файл, я пытаюсь конвертировать текст как для источника. В настоящее время я использую xml::Twig, и мне нужен вывод без каких-либо изменений в XML.
Я старался:
XML:
<book>
<book-meta>
<book-id pub-id-type="doi">98568</book-id>
<copyright-statement>Copyright © 1999 Relati</copyright-statement>
<imprint-text type="PublisherInfo">This edition published in the Taylor & 2002.</imprint-text>
</book-meta>
</book>
Автор сценария:
use strict;
use XML::Twig;
use XML::Xpath;
open(my $output , '>', "Output.xml") || die "can't open the Output $!\n";
my $xml_twig_content = XML::Twig->new(
twig_handlers => {
keep_atts_order => 1,
keep_encoding => 1,
},
pretty_print => 'indented',
);
$xml_twig_content->parsefile('sample.xml');
$xml_twig_content->print($output);
выход:
<book>
<book-meta>
<book-id pub-id-type="doi">98568</book-id>
<copyright-statement>Copyright © 1999 Relati</copyright-statement>
<imprint-text type="PublisherInfo">This edition published in the Taylor & 2002.</imprint-text>
</book-meta>
</book>
Мне нужен вывод:
<book>
<book-meta>
<book-id pub-id-type="doi">98568</book-id>
<copyright-statement>Copyright © 1999 Relati</copyright-statement>
<imprint-text type="PublisherInfo">This edition published in the Taylor & 2002.</imprint-text>
</book-meta>
</book>
Как мне нужно в качестве источника без каких-либо изменений.
1 ответ
Решение
Есть проблема в вашем new
заявление: keep_encoding
а также keep_atts_order
параметры объявлены как twig_handlers
, Я не думаю, что это то, что вы хотите, так как единственное, что это делает, это умереть, как только элемент по имени keep_atts_order
или же keep_encoding
находится в XML.
Я думаю, что это больше похоже на то, что вы имели в виду:
my $xml_twig_content = XML::Twig->new( keep_atts_order => 1,
keep_encoding => 1,
pretty_print => 'indented',
);