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, 则请跳过这篇文件.