gpt4 book ai didi

xml - 我希望 XML::Twig 准确地打印出解析的内容

转载 作者:数据小太阳 更新时间:2023-10-29 02:51:32 24 4
gpt4 key购买 nike

我的 XML 包含 '对于'等。当我使用 XML::Twig 解析它然后再次打印出来时,所有的 '';打印为 '.此外,XML::Twig 似乎重新排序属性以将它们按字母顺序排列。从 XML 的角度来看,这些是等效的,但是,我想对 XML 进行一小部分更改并使用 diff 来确认所做的唯一更改是我想要的。有没有办法让 XML::Twig 除了我明确更改的内容外什么都不更改?

这是我的 XML:

<?xml version="1.0" encoding="utf-8"?>
<System>
<P C="C" B="B" A="A">&apos;&lt;&gt;&quot;&amp;</P>
<P A="A" B="B" C="C">'&lt;>"&amp;</P>
</System>

还有 perl:

my $twig = new XML::Twig(KeepSpaces => 'true');
$twig->parsefile("test.xml");
$twig->print();

下面是打印的内容:

<?xml version="1.0" encoding="utf-8"?>
<System>
<P A="A" B="B" C="C">'&lt;>"&amp;</P>
<P A="A" B="B" C="C">'&lt;>"&amp;</P>
</System>

最佳答案

好像是keep_encoding选项可以解决问题:

use strict;
use warnings;
use XML::Twig;

my $twig = XML::Twig->new(
keep_spaces => 1,
keep_encoding => 1,
keep_atts_order => 1,
);
$twig->parsefile('test.xml');
$twig->print;

更新:针对 mirod 的评论进行了改进。

关于xml - 我希望 XML::Twig 准确地打印出解析的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com