2011-08-22 64 views
2

我想運行一個Perl腳本,得到一個XML文檔中的所有元素到一個數組。代碼如下:「沒有很好地形成」錯誤使用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 

我使用的ActivePerl(v5.14.1)爲MSWin32 86多線程構建。 我想在Win7上運行這個腳本。

+0

凡$的數據從何而來? –

+0

那是你得到什麼,當你複製和粘貼..... – Bruce

回答

7

But when I run this code, I get an error: Use of tied on a handle without * is deprecated at C:/Perl/lib/XML/Parser/Expat.pm line 447.

這聽起來像一個警告,而不是一個錯誤。您有過時的XML :: Parser:安裝。

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

這表明您的XML已損壞。您需要更正XML。

+1

的警告來自XML解析器::不是XML ::簡單。它在[2.41版本中已修復](https://rt.cpan.org/Ticket/Display.html?id=67207)。 – cjm

相關問題