我写了一个小脚本,它解析一个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.
我建议不要这样做。