Perl XML::Twig 不转义双引号



我写了一个小脚本,它解析一个XML文件,删除一些冗余元素,并使用$xml->print_to_file();将其余元素写回一个新的XML文件。

一切都很好,除了用"转义的标记文本中的双引号现在是正常的双引号。我没有找到类似于escape_gt的配置来防止这种行为。是否有这样的配置或其他方法来保持双引号转义?

我的树枝配置如下:

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

没有理由在XML文本中转义引号。双引号只需要在用双引号引起来的属性值中转义,我相信您会发现XML::Twig转义了这些。


但这是有可能的,通过处理XML::Twig的内脏:

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

我建议不要这样做。

最新更新