Perl XML :: Twig不会转义双引号

时间:2012-02-09 09:30:22

标签: perl xml-twig

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

一切正常,但标签文本中的双引号已被"转义,现在是正常的双引号。我没有找到类似于escape_gt的配置来阻止此行为。是否有这样的配置或其他方法来保持双引号转义?

我的twig配置如下所示:

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

1 个答案:

答案 0 :(得分:7)

没有理由在XML文本中转义引号。双引号只需要在用双引号引用的属性值中进行转义,我相信你会发现XML :: Twig会逃避这些。


...但是有可能通过使用XML :: Twig的内容:

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

我建议不要这样做。