Perl 简单读写XML

前端之家收集整理的这篇文章主要介绍了Perl 简单读写XML前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


使用XML::SImple来读写XML

t.xml

<?xml version="1.0" ?>
<rtsp_execute>

    <data name="xcoder" tag="abc" id="001">StreamingMediaTranscoder.exe</data>

    <data name="src.ip" tag="123" id="002">10.239.254.202</data>
    <data name="src.rtsp_port">8554</data>

    <data name="options">-u SPEED -stats</data>
    <data>XXXXXXXXXXXXXXXXXXXXXXXXX</data>

    <param name="kill_at_session_end">1</param>
    <param name="session_liveness_timeout">0</param>

</rtsp_execute>


读xml

    use strict;
    use warnings;

    use XML::Simple;
    use Data::Dumper;

    use 5.010;
    my $xmlfile = "t.xml";
    my $xml = XML::Simple->new(KeyAttr=>"",ForceArray => 1);

    my $tree = $xml->XMLin($xmlfile);
    say Dumper($tree);
    
    my @datas = @{$tree->{"data"}};
    my $len = @datas;
    say "data length = $len";
    
    foreach(@datas){
    	if(ref($_) eq 'HASH'){
    		my %itmes = %{$_};
    		say $itmes{'content'};
    	}else{
	    	say $_;
    	}
    	
    }

    

输出结果

$VAR1 = {
          'data' => [
                    {
                      'id' => '001','name' => 'xcoder','content' => 'StreamingMediaTranscoder.exe','tag' => 'abc'
                    },{
                      'content' => '10.239.254.202','tag' => '123','id' => '002','name' => 'src.ip'
                    },{
                      'name' => 'src.rtsp_port','content' => '8554'
                    },{
                      'content' => '-u SPEED -stats','name' => 'options'
                    },'XXXXXXXXXXXXXXXXXXXXXXXXX'
                  ],'param' => [
                     {
                       'name' => 'kill_at_session_end','content' => '1'
                     },{
                       'name' => 'session_liveness_timeout','content' => '0'
                     }
                   ]
        };

data length = 5
StreamingMediaTranscoder.exe
10.239.254.202
8554
-u SPEED -stats
XXXXXXXXXXXXXXXXXXXXXXXXX
写xml

猜你在找的Perl相关文章