【问题标题】:changing rev value in ivy.xml using perl/python使用 perl/python 更改 ivy.xml 中的 rev 值
【发布时间】:2012-09-22 20:01:52
【问题描述】:

需要在构建之前动态更改 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 代码 sn-p 也足够了

【问题讨论】:

标签: python xml perl ivy


【解决方案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);

【讨论】:

  • 我假设 poi 位于 null 命名空间中,因为没有另外指定。
猜你喜欢
  • 2012-06-06
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
  • 2015-01-26
  • 2012-04-27
  • 2012-07-30
  • 2011-11-02
  • 2023-04-07
相关资源
最近更新 更多