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

しかし、このコードを実行すると、次のエラーが表示されます: Use of tie on a handle without * is deprecated at C:/Perl/lib/XML/Parser/Expat.pm line 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 に答える