如何使用Perl将XML数据节点附加到现有文件?

时间:2014-04-10 10:48:25

标签: xml perl

我有以下格式的目录列表

/temp/partner1
/temp/partner2
..
..
/temp/partnern

在每个合作伙伴目录中,将提供具有唯一名称(Analytics.xml)的XML文件。

XML文件:

<?xml version="1.0" encoding="utf-8"?>   
<root>
    <GeneralParameters>   
        <PreviousX>250</PreviousX>    
        <PreviousY>37</PreviousY>    
        <NextX>169</NextX>
        <NextY>37</NextY>
        <CancelX>88</CancelX>
        <CancelY>37</CancelY>    
        <Height>399</Height>    
        <Width>513</Width>    
        <bgColor>EFEBDF</bgColor>    
        <GetServer>http://pipoffers.apnpartners.com/PIP/Server.jhtml?partner_id={partnerid}&amp;language={locale}</GetServer>       
        </Parameters>    
    </GeneralParameters>    

</root>

我想解析所有合作伙伴目录中的xml文件,并使用perl脚本将GetServer节点附加到以下值

http://pipoffers.apnpartners.com/PIP/Server.jhtml?partner_id={partnerid}&amp;language={locale}&amp;version={version}

请提出一些建议

1 个答案:

答案 0 :(得分:0)

这是一个让你入门的存根:

use strict;
use warnings;
use autodie;

# Iterate over directories
for my $dir (grep {-d} </temp/partner*>) {
    my $file = $dir . '/Analytics.xml'.

    if (!-e $file) {
        warn "File not found: $file\n";
        next;
    }

    # Use XML::Twig or XML::LibXML to process the xml
    # ...
}