2

XML::Simpleを使用してXMLファイルを編集しています。その後、更新されたデータが新しいXMLファイルに送信されます。ただし、この手順では<opt></opt>、追加するタグが生成され、元の親タグは失われます。<opt>元のタグ名に置き換えたい。それ、どうやったら出来るの?

4

3 に答える 3

2

KeepRootを参照してください。strict モードを有効にすることも検討してください。

#!/usr/bin/perl

use strict; use warnings;

use XML::Simple qw(:strict);
use Data::Dumper;

my $x = XMLin(\*DATA, KeepRoot => 1, ForceArray => 1, KeyAttr => ['the']);

print XMLout($x, KeepRoot => 1, KeyAttr => ['the']);

__DATA__
<this>
<that the="other">This that and the other</that>
</this>

出力:

<this>
  <that the="other">This that and the other</that>
</this>
于 2010-01-13T23:44:22.687 に答える
0

XML::Simpleの限界を広げています。それが何をしているのか正確に気に入らないところまで来たら、それは別のことをする時です. 他に何があるかは問題によって異なりますが、私はXML::Twigが好きです。

于 2010-01-14T04:06:57.380 に答える
0

新しいxmlファイルでは、正規表現を使用して削除するパターンを見つけてから、元のタグである必要なパターンに置き換えることができます。

 @ar="xml file";
 $pat="tag you want to replace";
 $rep="original tag";


 foreach $a (@ar) {
   if ($a =~ s|$pat|$rep|gi;
   }

xml ファイル ハンドラ名=@arr;

于 2010-01-14T02:21:52.537 に答える