0

需要在构建之前动态更改 ivy.xml 中的 rev="{rev}"。我试图使用 Perl XML:Simple 模块,但输出不可接受。在依赖项部分,我得到:

<dependencies name="dependency">
  <poi org="ossjava" rev="3.6.0" />
</dependencies>

代替

<dependencies>
       <dependency org="ossjava" name="poi" rev="3.6.0"/>
</dependencies>

请帮忙!一个 Python 代码片段也足够了

4

1 回答 1

1

具有讽刺意味的是,XML::Simple 是最复杂的 XML 模块。您需要指定一个空KeyAttr参数。

无论如何,我会使用:

use XML::LibXML qw( );

my $qfn = 'ivy.xml';

my $parser = XML::LibXML->new();
my $doc    = $parser->parse_file($qfn);
my $root   = $doc->documentElement();

for my $poi ($root->findnodes('//poi')) {
   $poi->setAttribute('rev', process($poi->getAttribute('rev')));
}

$doc->toFile($qfn);
于 2012-10-01T23:06:25.250 回答