<?xml version="1.0" encoding="utf-8"?>
<!--00/00/0000 12:35:25 AM-->
<Physical xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<Pro managementID="22000020">
<Identification Type="XXXXX" >
<Address>
<Data>test</Data>
</Address>
<Phone>
<Number>0000</Number>
</Phone>
<Email>[email protected]</Email>
</Identification>
</Pro>
</Physical>
腳本:
我試圖改變變量的值,並打印剩下的一個新的輸出xml文件
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
my $xml = XML::Simple->new(ForceContent => 1,);
my $xmlData = $xml->XMLin('input.xml') or die$!;
print Dumper (\$xmlData);
foreach my $xmlKey (keys %{$xmlData}){
if ($xmlKey =~ m/Pro/){
print ${$xmlData}{$xmlKey}{Identification}{Address}{Data}="hello";
}
}
XMLout(
$xmlData,
KeepRoot => 1,
NoAttr => 0,
OutputFile => $xml_out,
);
Outout XML:
<opt xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Pro managementID="22000020">
<Identification Type="XXXXX">
<Address Data="hello" />
<Email>[email protected]</Email>
<Phone name="Number">0000</Phone>
</Identification>
</Pro>
</opt>
我能夠改變這個值,但是當我試圖將數據寫入輸出時,格式已經改變了。任何一個人都可以指導我得到相同的輸入數據,並將改變後的值作爲輸出。
這就是爲什麼你不使用XML ::簡單的輸出。 – ikegami