免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2382 | 回复: 10
打印 上一主题 下一主题

已经解决。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-18 23:17 |只看该作者 |倒序浏览
。。

[ 本帖最后由 kernel.org 于 2007-3-19 10:58 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-03-19 00:35 |只看该作者

回复 1楼 kernel.org 的帖子

Hi,

using CPAN module XML::Simple.
i.e. code:
use strict;
use XML::Simple;

my $xs = new XML::Simple( forcecontent=>1 );
my $xmlfile = './weathercity.xml';
my $xml = $xs->XMLin($xmlfile);
my @names =('CityId', 'CityName', 'AdPic', 'Enabled');

foreach my $href (@{$xml->{'row'}}) {
    foreach my $name (@names) {
        # option: forcecontent=>1 used
        print $name. '="'. $href->{$name}->{'content'}. '"  ';
    }
    print "\n";
}


--ulmer

论坛徽章:
0
3 [报告]
发表于 2007-03-19 09:24 |只看该作者
谢谢。
怎么也能把 'CityId', 'CityName', 'AdPic', 'Enabled' 这些也解析出来呢?想写成一个通用的。

因为我还有些文件是这样的表述

<row num="3">
<FlowId>3</FlowId>
<AccessTime>2006-12-13 15:55:23</AccessTime>
<UserId>0</UserId>
<Info>用户登录失败</Info>
</row >
<row num="4">
<FlowId>4</FlowId>
<AccessTime>2006-12-13 15:59:02</AccessTime>
<UserId>0</UserId>
<Info>用户 1 登录失败</Info>
</row >

论坛徽章:
0
4 [报告]
发表于 2007-03-19 09:32 |只看该作者
perldoc XML::Simple

论坛徽章:
0
5 [报告]
发表于 2007-03-19 09:55 |只看该作者
原帖由 alexru 于 2007-3-19 09:32 发表
perldoc XML::Simple


看不懂。

论坛徽章:
0
6 [报告]
发表于 2007-03-19 10:29 |只看该作者

  1. use strict;
  2. use XML::Simple;

  3. my $xs = new XML::Simple( forcecontent=>1 );
  4. my $xmlfile = '1.xml';
  5. my $xml = $xs->XMLin($xmlfile);
  6. #print Dumper ($xml);


  7. #my @names =('CityId', 'CityName', 'AdPic', 'Enabled');

  8. my @names ;
  9. my $n = 0;
  10. foreach my $chunk (keys(%{ $xml->{'row'} })) {
  11.         $names[$n] = $chunk;
  12.         $n++;
  13. }
  14. print @names;


  15. foreach my $href (@{$xml->{'row'}}) {
  16. foreach my $name (@names) {
  17.         print $name. '="'. $href->{$name}->{'content'}. '"  ';
  18. }
  19. print "\n";
  20. }
复制代码


修改了一下。 可以得到names数组了,可是又有一个错误了,怎么回事?

论坛徽章:
0
7 [报告]
发表于 2007-03-19 10:33 |只看该作者
D:\code>10.pl
CityName
CityId
num
Enabled
AdPic

D:\code>

而且运行结果多一个空行,怎么回事?

论坛徽章:
0
8 [报告]
发表于 2007-03-19 10:35 |只看该作者
use strict;
use XML::Simple;

my $xs = new XML::Simple( forcecontent=>1 );
my $xmlfile = '1.xml';
my $xml = $xs->XMLin($xmlfile);
#print Dumper ($xml);


#my @names =('CityId', 'CityName', 'AdPic', 'Enabled');

my @names ;

foreach my $chunk (keys(%{ $xml->{'row'} })) {
         push @names, $chunk;
}

foreach  (@names) {
        print $_."\n";
}


foreach my $href (@{$xml->{'row'}}) {
foreach my $name (@names) {
        print $name. '="'. $href->{$name}->{'content'}. '"  ';
}
print "\n";
}

论坛徽章:
0
9 [报告]
发表于 2007-03-19 10:54 |只看该作者
D:\code>10.pl
CityName
CityId
num
Enabled

D:\code>10.pl
CityId
CityName
AdPic
Enabled


num 是 row的属性啊。怎么会 出现在 ◎names里呢?

论坛徽章:
0
10 [报告]
发表于 2007-03-19 10:57 |只看该作者
解决了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP