首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用转换后的散列xml简单打印哈希键

使用转换后的散列xml简单打印哈希键
EN

Stack Overflow用户
提问于 2014-03-31 09:36:43
回答 1查看 381关注 0票数 0

我是perl的新手,我希望获得使用XML::SIMPLE模块生成的哈希表键,如下所示

代码语言:javascript
复制
$data = $xml->XMLin("tp.xml");

下面是生成的结构

代码语言:javascript
复制
$VAR1 = {
      'technical-profile' => {
                             'WEB' => {
                                      'mandatory-param' => {
                                                           'value' => 'high',
                                                           'name' => 'screenCapability',
                                                           'case-sensitive' => 'no'
                                                         }
                                    },
                             'WAP/PDA' => {
                                          'description' => 'wap/sparphone',
                                          'mandatory-param' => {
                                                               'value' => 'low|intermediate',
                                                               'name' => 'screenCapability',
                                                               'case-sensitive' => 'no'
                                                             }
                                        },
                             'WAP' => {
                                      'description' => 'wap/sparphone',
                                      'mandatory-param' => {
                                                           'value' => 'low',
                                                           'name' => 'screenCapability',
                                                           'case-sensitive' => 'no'
                                                         }
                                    }
                           }
    };

我试过这个

代码语言:javascript
复制
print "Key: $_" foreach (keys%data);

但是我什么也没有,我想打印WEBWAP/PDAWAP,怎么可能呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-31 17:33:36

在您创建的每个perl脚本的顶部都包括use strict;use warnings;

如果您这样做了,您将得到以下错误:

代码语言:javascript
复制
Global symbol "%data" requires explicit package name

您的数据是分配给$data的哈希引用。因此,要查看它的键,请执行以下操作:

代码语言:javascript
复制
print "Key: $_\n" for keys %$data;

对于第二个哈希级别上的三个值,您可以使用以下方法:

代码语言:javascript
复制
print "Key: $_\n" for keys %{$data->{technical-profile}};

应该输出(按随机顺序排列):

代码语言:javascript
复制
Key: WEB
Key: WAP/PDA
Key: WAP
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22758228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档