如何用perl 获取xml中的数据,求助!!!!!

<?xml version="1.0" encoding="UTF-8"?>

<root>

<row>

<field name='CURRENT_DATE' value='2011-10-25'/>

<field name='GATEWAY_NAME' value='HESJ-PS-WAP-SYS01'/>

<field name='REQ_NUM' value='119339386'/>

<field name='TODAY_SUCC_RATE' value='95.95'/>

<field name='TODAY_TOP_LINE_USER_NUM' value='412'/>

<field name='GATEWAY_AVG_DELAY' value='33.03'/>

</row>

<row>

<field name='CURRENT_DATE' value='2011-10-26'/>

<field name='GATEWAY_NAME' value='HESJ-PS-WAP-SYS01'/>

<field name='REQ_NUM' value='3318745'/>

<field name='TODAY_SUCC_RATE' value='95'/>

<field name='TODAY_TOP_LINE_USER_NUM' value='127'/>

<field name='GATEWAY_AVG_DELAY' value='37.56'/>

</row>

</root>

第1个回答  2011-10-28
麻烦的做法是自己用正则表达式取数据。简单点的,Perl里面有专门读写XML数据的“包”,如果没有,可以自行从网上下载来安装。
第2个回答  2013-07-31
可参考这个:

源地址在:http://www.oschina.net/code/snippet_18_5572

1. [代码][Perl]代码
01 use XML::Simple;
02 my $xmlfile = "result.xml";
03
04 my $casesT = XML::Simple->new( ForceArray => 1 );
05 my $caseT = $casesT->XMLin($xmlfile);
06
07 my @cT = @{ $caseT->{"caseresult"} };
08
09
10 foreach my $c (@cT) {
11 $case_file = $c->{"caseFile"}[0];
12 $is_true = $c->{"isSuccessFul"}[0];
13 print $case_file. " ". $is_true ."\n";
14 }
2. [代码]result.xml
01 <okList>
02 <caseresult>
03 <caseFile>/home/sql/1.sql</caseFile>
04 <isSuccessFul>true</isSuccessFul>
05 </caseresult>
06 <caseresult>
07 <caseFile>/home/sql/2.sql</caseFile>
08 <isSuccessFul>true</isSuccessFul>
09 </caseresult>
10 </okList>
第3个回答  2011-11-01
对于excel的读取,建议用Win32::OLE模块,相当强大和简便
代码如下:
#**********************************************************
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
use Cwd;
use File::Find;
use File::Copy;

#*********************************************************************
my $curdir=getcwd();
# get already active Excel application or open new
my $Excel = Win32::OLE-
第4个回答  2014-07-03
use XML::Simple;
use Data::Dumper;

open (FILE,">C:/Perl/test.txt");
$xml = XMLin('C:\Perl\Code\file.xml');
print FILE Dumper($xml);

如何利用Perl解析XML文件
XML::解析器系列 最初的Perl解析器XML::Parser::Expat由LarryWall在几年前编写并由ClarkCooper保持延续。模块作为ExpatXMLparser的界面由JamesClark用C语言编写且已经被一些脚本语言所采用。Perl解析XML文件中Expat是一个以事件为基础的解析器,意味着特定条件触发处理功能。例如,一个开始或结尾标记将触发适...

perl中用XML::Simple模块写xml文件时,怎么确定属性的顺序?
很简单,你把希望打印的文本存到文件里,比如test.xml,然后用XML::Simple打开它,然后用Data::Dumper把数据dump出来打印到屏幕上。use strict;use warnings;use XML::Simple;use Data::Dumper;my $xml = new XML::Simple;my $test = "test.xml";open(IN, "< $test") or die("Error: coul...

如何通过属性的值删除对应xml文件的节点?
1、你希望的是删除 属性里面code为“永久”的节点 2、遍历整个XML节点,在每个节点中找是否存在名为code的属性,如果有的话,再判断是否值为“永久”3、如果遍历过程中找到符合你的条件的节点,就删除

怎么用perl把两个列进行相比较并列出不同的?
没必要用perl,excel就可以了,把其中一列贴到记事本,然后贴回excel里面(记住,贴回去的时候要把所有内容贴到一个单元格里面),然后用find函数就可以找到不同的了。比如说你给出来的是列A和列B。1.把列A的东西复制到记事本,然后全部贴到C1里面。2.在D1写公式 "=find(left(B1,4),C$1)"...

perl FTP模块中put 的应用
Cannot open Local file xxxxxxx.xml 这样的提示,表示你的本地文件不存在,本地文件可以使用全称(包含路径),远程文件不能含有目录,只有名字,当然是自动建立,如果存在同名文件会覆盖。

perl如何替换文本指定内容
【方法一】1.批量替换用sed:sed 's\/a\/b\/g' ##将a 换成b 2.批量替换文件内容方法,命令结构如下:find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'3.下面例子将当前目录及所有子目录下的所有pom.xml文件的”http:\/\/repo1.maven.org\/maven2“...

通信工程本科快毕业了,要做毕业论文,求助大家
从Perl正则表达式到关系数据库模式一种新型正则表达式分析树的建立用Perl语言抽取网页信息正则表达市的可视化构建超声图象管理系统设计与实施城际旅游铁路交通信息查询系统的设计与实现电脑经销物质管理信息系统基于Apriori算法的学籍课程成绩关联规则挖掘研究基于多维数据分析方法的学籍学分预警模型的研究课程教学管理信息系统联创...

问一个关于WOW XPERL插件的问题!
我用X-PERL 已经有大概2年了 神级插件 赞一个~~~那么不知道你是不是用错版本了呢?另外一个就是 你说你是单独用的这个插件 而没有跟别的插件混用 那么我个人猜测可能问题就出在这里 X-PERL是辅助插件 我个人是一直跟魔兽精灵混用的 所以从来没出过你说的这些问题 那么个人建议你把大脚装上 ...

用Perl开发CGI 应用程序内容简介
数据库交互处理也是重要内容,学习如何与各种数据库系统进行高效交互,处理数据。HTML::Mason的引入,让你在编写HTML时能无缝嵌入Perl代码,增强网页的动态性。远程文件管理、动态图像生成,以及XML处理,这些都是书中涉及的实用功能,帮助你扩展应用程序的范围。每个章节都配有详细的代码解释和实践练习,旨在...

perl中怎么判断一个变量里边存放的是哈希还是数组?
使用Perl中的ref方法,可以判断一个引用是指向hash还是array。if (ref($user) eq 'HASH') { user 指向的是HASH ...} elsif (ref($user) eq 'ARRAY') { user 指向的是数组 ...} else { ...}

相似回答