我想用perl更新xml中的屬性。這裏的問題是當我更新xml的屬性時它正在發生,但xml格式正在發生變化.Breaking我的頭,但沒用!perl代碼來更新xml中的屬性而不影響xml格式
任何人都可以請建議我一些Perl代碼了影響XML格式
我用Perl代碼如下所示
#!/usr/bin/perl
use strict;
use warnings;
use XML::Simple;
my $xml_file = '3.xml';
my $xml = XMLin(
$xml_file,
KeepRoot => 1,
ForceArray => 1
);
$xml->{outer1}->[0]->{inner1}->[1]->{name}->[0]->{first} = 'Shane Bond';
XMLout(
$xml,
KeepRoot => 1,
NoAttr => 1,
OutputFile => $xml_file,
);
輸入XML更新XML屬性:
<outer1>
<inner1>
<name>Stonecold</name>
<org>wwf</org>
<profession>
<Bowler>hai</Bowler>
</profession>
</inner1>
<inner1>
<name first = "Shanebond" />
<org>newzealand</org>
<profession>Shane Bond</profession>
</inner1>
<inner1>
<name>brain schemidit</name>
<org>Google</org>
<profession>Chairman</profession>
</inner1>
</outer1>
預期產量xml:
<outer1>
<inner1>
<name>Stonecold</name>
<org>wwf</org>
<profession>
<Bowler>hai</Bowler>
</profession>
</inner1>
<inner1>
<name first = "Shane Bond" />
<org>newzealand</org>
<profession>Shane Bond</profession>
</inner1>
<inner1>
<name>brain schemidit</name>
<org>Google</org>
<profession>Chairman</profession>
</inner1>
</outer1>
實際輸出XML:
<outer1>
<inner1>
<name>Stonecold</name>
<org>wwf</org>
<profession>
<Bowler>hai</Bowler>
</profession>
</inner1>
<inner1>
<name>
<first>Shane Bond</first>
</name>
<org>newzealand</org>
<profession>Shane Bond</profession>
</inner1>
<inner1>
<name>brain schemidit</name>
<org>Google</org>
<profession>Chairman</profession>
</inner1>
</outer1>
[*?爲什麼XML ::簡單 「望而卻步」 *](http://stackoverflow.com/questions/33267765/why-is-xmlsimple-discouraged) – Borodin