XML::XPath
長い間xmlを解析するために使用していますが、属性値を変更する状況になりました。
xml はファイルで利用できますが、これと非常によく似ています。
<AppName>
<Action AllDay='1'StartRace='1'/>
<StartPoint AM_PM='AM' Hours='09' Mins='30'/>
<EndPoint AM_PM='PM' Hours='06' Mins='30'/>
</AppName>
Hours of StartPoint タグを変更するための perl スクリプトを作成しました。
use strict;
use warnings;
use XML::Twig;
my $fileName = 'Conf.xml';
my $twig = XML::Twig->new(
twig_roots => { StartPoint => \&ReplaceAtriValue },
twig_print_outside_roots => 1, );
sub ReplaceAtriValue {
my ($twig, $startPoint) = @_;
if ( '09' eq $startPoint->att('Hours') )
{
$startPoint->set_att( Hours => '12');
}
$startPoint->print(); }
$twig->parsefile($fileName);
私は 09 を 12 にうまく置き換えて、今$twig
では xml オブジェクトを持っています。このオブジェクト ( $twig
) を、 を使用して xml を解析する SetWindow.pmに送信すると、このXML::XPath
オブジェクトが認識されませんでした。オブジェクト内の値を解析するように、XML::Twig
オブジェクトをXML::XPath
オブジェクトに変換する方法はありますか?XML::XPath
$twig
実際、私は長い間使用していたので、SetWindow.pm のようなすべての独自の *.pm にオブジェクトをXML::XPath
送信する必要があります。同時に、独自の PM に送信する前に、標準 xml の属性の値を変更する必要があります。XML::XPath
前もって感謝します。
どんな助けでも大歓迎です!
rndpilot