简单Perl XML编程

    XML出来好久了, 亏我很早就用Java写程了, 但从没有写过处理XML的程序, 前段时间在整Text Links Ads的广告代码时, 发现了一段Perl处理XML的样本程序, 因为也常用XML来写工具, 如果将配置文件改成XML文件, 倒是件好事, 就在这儿总结一下. 下面是我要处理的一个XML文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row col1="AnySQL" col2="4"></row>
  <row col1="DBATools" col2="1"></row>
</rows>

    XML的数据结构, 在Perl中对应起来主要是Hash的Hash结构, 也不是很复杂.

#!/usr/bin/perl -w
use XML::Simple;
my $xml  = new XML::Simple;
my $data = $xml->XMLin("./test.xml");
if ($data->{'row'}) {
   # Convert to hash, if it's array
   if (ref $data->{'row'} eq "HASH") {
       @$temp = ($data->{'row'});
       $data->{'row'} = $temp;    }
   if ($data->{'row'}->[0])    {
       my $count = 0;
       while($data->{'row'}->[$count])  {
         if (ref $data->{'row'}->[$count] eq "HASH")  {
           print $data->{'row'}->[$count]->{'col1'}, ",";
           print $data->{'row'}->[$count]->{'col2'}, "\n";  }
         $count ++;  }
   }     }

    程序运行的结果:

C:\temp\>xml.pl
AnySQL,4
DBATools,1

    如果你不知道什么是XML, 则请跳过这篇文件.

留言 (3)

如果你不知道什么是XML, 则请跳过这篇文件.

这句话应该放开头

我不喜欢最后一段是代码, 硬要加一句上去.

XML::Smart是个挺噩梦的module

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • I have bought a ticket for a sleeper.
  • 我买了张卧铺票.
  • Have you reserved your ticket?
  • 你订票了吗?
  • I would never have thought of it if you hadn't mentioned it.
  • 如果不是你提起的话, 我肯定想不到.
  • I will see you off at the railway station.
  • 我会去机场送你.
  • Where are you from?
  • 你来自哪儿?