Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Perl中使用XML::Parser将XML解析为哈希_Perl_Parsing_Hash_Xml Parsing - Fatal编程技术网

在Perl中使用XML::Parser将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

我想将一个简单的XML文档解析为散列


上下快速移动
蝙蝠侠
杰瑞
超人
预期输出如下所示

$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'
                                 }
                               ]
                     }
        };