XMLのタグの内容を置き換えるperlコードを書きたい。例<A>Hello<A>
:
XMLでタグを検索し<A>
、値「Hello」を「Hi」に置き換えたいと思います。
それ、どうやったら出来るの?
この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>
XML :: XSH2を使用して、XML :: LibXMLのラッパー:
open file.xml ;
for //A[text()='Hello'] set text() 'Hi' ;
save :b ;