我正在使用XML::Simple来编辑 XML 文件。之后更新的数据被发送到一个新的 XML 文件。但是这个过程会产生<opt></opt>
要添加的标签,而原来的父标签会丢失。我想<opt>
用原始标签名称替换。我怎么做?
问问题
1302 次
3 回答
2
#!/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 文件中,您可以使用常规表达式找到要删除的模式,然后替换为您想要的模式,即原始标签。
@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 回答
0
您正在扩展XML::Simple的限制。当你到了你不喜欢它的作用的地步时,是时候做点别的了。其他的东西取决于你的问题,但我喜欢XML::Twig。
于 2010-01-14T04:06:57.380 回答