2

我正在尝试运行 Perl 脚本以将 xml 文档的所有元素放入数组中。代码如下:

#!/usr/bin/perl

# Script to illustrate how to parse a simple XML file
# and dump its contents in a Perl hash record.

use strict;
use XML::Simple;

my $xs = new XML::Simple();

my $booklist = $xs->XMLin('./cmn_msg.xml');

print Dumper($data);

当我运行这段代码时,我得到一个错误:

Use of tied on a handle without * is deprecated at C:/Perl/lib/XML/Parser/Expat.pm line 447.

not well-formed (invalid token) at line 4, column 14, byte 128 at C:/Perl/lib/XML/Parser.pm line 187

我正在使用为 MSWin32-x86-multi-thread 构建的 ActivePerl (v5.14.1)。我正在尝试在 Win7 上运行此脚本。

4

2 回答 2

7

但是当我运行此代码时,我收到一个错误:在 C:/Perl/lib/XML/Parser/Expat.pm 第 447 行不推荐使用不带 * 的句柄上的绑定。

这听起来像是警告,而不是错误。您安装了过期的 XML::Parser:。

在 C:/Perl/lib/XML/Parser.pm 第 187 行的第 4 行第 14 列第 128 字节的格式不正确(无效标记)

这说明您的 XML 已损坏。您需要更正 XML。

于 2011-08-22T10:20:09.173 回答
0

警告实际上来自过时的 XML::Simple 模块:

http://www.nntp.perl.org/group/perl.perl5.porters/2011/04/msg171611.html

于 2012-05-17T16:09:42.067 回答