Perl XML :: Twig не избегает двойных кавычек - PullRequest
0 голосов
/ 09 февраля 2012

Я написал небольшой скрипт, который анализирует XML-файл, удаляет некоторые избыточные элементы и записывает остальные обратно в новый XML-файл, используя $xml->print_to_file();.

Все работает нормально, за исключением того, что двойные кавычки внутри текста тега, экранированные с помощью ", теперь являются обычными двойными кавычками. Я не нашел конфигурацию, похожую на escape_gt, чтобы предотвратить это поведение. Существует ли такой конфиг или другой способ избежать двойных кавычек?

Мой конфиг ветки выглядит так:

my $xml = XML::Twig->new(
    twig_handlers => {
        label => \&purge_file
    },
    pretty_print => 'indented',
    output_encoding => 'utf-8',
    escape_gt => 1
);

1 Ответ

7 голосов
/ 09 февраля 2012

Нет причин избегать кавычек в тексте XML. Двойные кавычки необходимо экранировать только в значениях атрибутов, заключенных в двойные кавычки, и я уверен, что вы обнаружите, что XML :: Twig избегает их.


... но это возможно с помощью XML :: Twig's guts:

XML::Twig::Elt::set_replaced_ents(qq{&<>"});  # "&" needs to be first.

Я рекомендую против этого.

...