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, 则请跳过这篇文件.
这句话应该放开头
Posted by Timo | Dec 17, 2007 8:42 AM
我不喜欢最后一段是代码, 硬要加一句上去.
Posted by anysql | Dec 17, 2007 1:04 PM
XML::Smart是个挺噩梦的module
Posted by bulletming | Jan 14, 2008 11:24 PM