在Perl中使用XML::Parser将XML解析为哈希
我想将一个简单的XML文档解析为散列在Perl中使用XML::Parser将XML解析为哈希,perl,parsing,hash,xml-parsing,Perl,Parsing,Hash,Xml Parsing,我想将一个简单的XML文档解析为散列 上下快速移动 蝙蝠侠 杰瑞 超人 预期输出如下所示 $VAR1 = { 'catalog'=>{ 'bk101'=>[ 'author'=>'Bob', 'title'=>'Batman' ] 'bk102'=>[ 'autho
上下快速移动
蝙蝠侠
杰瑞
超人
预期输出如下所示
$VAR1 = {
'catalog'=>{
'bk101'=>[
'author'=>'Bob',
'title'=>'Batman'
]
'bk102'=>[
'author'=>'Jerry',
'title'=>'Superman'
]
}
}
我是在XML::Simple
和其他库的帮助下完成这项工作的,但我必须使用XML::Parser
,而不使用递归
我如何在Perl中实现这一点?接近您想要的:
#!/usr/bin/env perl
use strict;
use warnings qw(all);
use Data::Dumper;
use XML::Hash::LX;
my $hash = xml2hash q(<?xml version ="1.0"?>
<catalog>
<book id = "bk101">
<author>Bob</author>
<title>Batman</title>
</book>
<book id = "bk102">
<author>Jerry</author>
<title>Superman</title>
</book>
</catalog>
);
print Dumper $hash;
第一步是阅读并遵循文档。然后向我们展示你的代码,告诉我们你到底有什么问题,或者你不了解什么。
$VAR1 = {
'catalog' => {
'book' => [
{
'title' => 'Batman',
'author' => 'Bob',
'-id' => 'bk101'
},
{
'title' => 'Superman',
'author' => 'Jerry',
'-id' => 'bk102'
}
]
}
};