我正在使用XML :: Twig来解析我的perl脚本中的文件。我对此有些陌生。我的XML文件中包含以下类型的条目(此处为示例示例):
<?xml version="1.0" encoding="UTF-8"?>
<mytag1 name="abc">
<mytag2>This is line 1.
This is line 2.
This is line 3.
</mytag2>
</mytag1>
在我的perl脚本中,我正在做类似的事情:
my $twig = XML::Twig->new( keep_encoding=>1, keep_atts_order=>1, pretty_print => 'indented', comments => 'keep' );
$twig->parsefile($in_file);
我周围有一些验证代码,之后会生成以下类型的输出。
<?xml version="1.0" encoding="UTF-8"?>
<mytag1 name="abc">
<mytag2>This is line 1.
This is line 2.
This is line 3.
</mytag2>
</mytag1>
输出中会生成多余的空行,我不确定这是怎么回事。我试图四处搜寻,但找不到更多有用的信息。任何帮助将不胜感激。
答案 0 :(得分:1)
删除keep_encoding
选项。这是没有用的,因为输入是utf-8,它使模块绕过了某些解析器功能,尤其是规范化LF / CR的功能。
无论如何都不应该使用它:这是Unicode不如今天流行的时候的遗物。它使使用旧编码的人们仍然能够处理其XML。
谢谢池上!
答案 1 :(得分:0)
非常感谢,删除keep_encoding
确实解决了该问题,但是只是想知道这会产生什么影响吗?因为在此示例中,编码为UTF-8
,但并非总是如此。