XML :: Twig正在为多行中提供的值添加空换行符

时间:2018-12-18 13:25:29

标签: xml perl twig xml-twig

我正在使用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>

输出中会生成多余的空行,我不确定这是怎么回事。我试图四处搜寻,但找不到更多有用的信息。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

删除keep_encoding选项。这是没有用的,因为输入是utf-8,它使模块绕过了某些解析器功能,尤其是规范化LF / CR的功能。

无论如何都不应该使用它:这是Unicode不如今天流行的时候的遗物。它使使用旧编码的人们仍然能够处理其XML。

谢谢池上!

答案 1 :(得分:0)

非常感谢,删除keep_encoding确实解决了该问题,但是只是想知道这会产生什么影响吗?因为在此示例中,编码为UTF-8,但并非总是如此。