【发布时间】:2023-03-20 16:15:01
【问题描述】:
如何停止 Perl
XML::LibXML
从将特殊字符从十进制更改为十六进制,例如 &#xA 到 &#10?
Perl 代码
use XML::LibXML;
open my $fh, '<', $File;
my $doc = XML::LibXML->load_xml(IO => $fh);
open (my $fh, '>', $File) or die $!;
print $fh $doc;
close $fh;
第三方工具(基于.net)和 Perl 脚本需要处理相同的 XML 文件。
第三方工具生成的 XML 包含:
<?xml version="1.0" encoding="utf-8"?>
<content>
<type sRemark="30 minutes.

"/>
</content>
但是,当 Perl 脚本尝试更新同一个文件时,它会更改为:
<?xml version="1.0" encoding="utf-8"?>
<content>
<type sRemark="30 minutes. "/>
</content>
我怎样才能保持相同的内容。
【问题讨论】:
-
你可能无法改变这一点。如果您的 XML 语法很重要,那么您就没有正确使用它。
-
您的代码中没有任何内容可以生成十六进制字符实体。请说明您是如何看待这种不良行为的。