-3

我想编写一个 perl 代码来替换 XML 中标记的内容。例如<A>Hello<A>

我想在我的 XML 中搜索标签<A>,然后将值“Hello”替换为“Hi”。

我怎么做?

4

2 回答 2

2

XML::Twig模块非常适合这一点,因为它允许您指定在解析 XML 时遇到给定标记时执行的处理程序。

如果您提供了一些真实的 XML 数据作为示例,那将会有所帮助,但是我使用了您问题的摘要。

use strict;
use warnings;

use XML::Twig;

my $twig = XML::Twig->new(
  twig_handlers => { A => sub { $_->subs_text(qr/Hello/, 'Hi') } },
);

$twig->parse(*DATA);
$twig->print;

__DATA__
<root>
I want to replace the content of a tag in XML. e.g. In
<A>Hello</A> I want to replace the value "Hello" with "Hi".
</root>

输出

<root>
I want to replace the content of a tag in XML. e.g. In
<A>Hi</A> I want to replace the value "Hello" with "Hi".
</root>
于 2012-11-27T12:21:57.507 回答
0

使用XML::XSH2,一个围绕XML::LibXML的包装器:

open file.xml ;
for //A[text()='Hello'] set text() 'Hi' ;
save :b ;
于 2012-11-27T10:51:54.817 回答