gpt4 book ai didi

xml - 为什么我从 XML::SAX::PurePerl::EncodingDetect 得到一个错误,尽管我没有加载那个模块?

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

下面是我编写的脚本,用于更改位于不同位置的 XML 文件中的一个参数的值:

#!/usr/bin/perl -w

use Cwd;
use XML::Simple;
use Data::Dumper;
no warnings;

my $before_upgrade_value = &pre_upgrade_value;
print "Value before upgrade:: $before_upgrade_value \n";

&change_value ($before_upgrade_value);

&change_value ("America");

my $after_upgrade_value = &pre_upgrade_value;

print "Value after upgrade:: $after_upgrade_value \n";
print "Done \n";

sub pre_upgrade_value {
my $xml = new XML::Simple;

# read XML file
my $input_xml = "/usr/tmp/country/CountryConfig.xml";

my $data = $xml->XMLin($input_xml);
my $arg0 = $data->{COMMON}->{COUNTRY_LIST}->{Value};

print "Arg0 is $arg0 \n";
return $arg0;
}

sub change_value {
my $arg0 = shift;

my $arg1 = "ENGLAND";

my $arg2 = "/usr/tmp/country/CountryConfig.xml";

system("perl -pi -e 's/$arg0/$arg1/' $arg2");
}

但是我收到以下错误:

Unable to recognise encoding of this document at /usr/local/lib/perl5/site_perl/5.8.7/XML/SAX/PurePerl/EncodingDetect.pm line 100. Document requires an element [Ln: 1, Col: 0]

你能告诉我我没有在我的代码中调用 EncodingDetect.pm 的原因吗?

最佳答案

XML::SAX 由 XML::Simple 使用。来自代码:

# XML::Simple requires the services of another module that knows how to parse
# XML. If XML::SAX is installed, the default SAX parser will be used,
# otherwise XML::Parser will be used.

XML::SAX 的一部分是 XML::SAX::PurePerl::EncodingDetect。听起来你的 XML 开头有一些空格,你可能会发现这个 PerlMonks node有帮助。

关于xml - 为什么我从 XML::SAX::PurePerl::EncodingDetect 得到一个错误,尽管我没有加载那个模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1339092/

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