我長時間使用XML::XPath
來解析xml,現在情況已經到了修改屬性值的地步。是否有任何可能的方式將XML :: Twig對象轉換爲XML :: XPath對象?
xml在文件中可用,它與此非常相似。
<AppName>
<Action AllDay='1'StartRace='1'/>
<StartPoint AM_PM='AM' Hours='09' Mins='30'/>
<EndPoint AM_PM='PM' Hours='06' Mins='30'/>
</AppName>
我寫了一個perl腳本來更改StartPoint可以標記的時間,
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::XPath
解析xml的SetWindow.pm,則無法識別此對象。是否有任何可能的方法將XML::Twig
對象轉換爲XML::XPath
對象,以便XML::XPath
將解析$twig
對象中的值。
其實我已經使用XML::XPath
作爲回來了,因此我必須發送XML::XPath
對象給我所有的* .pm,像SetWindow.pm,同時我需要改變標準xml屬性的值之前發送給我自己的PM。
在此先感謝。
任何幫助非常感謝!
rndpilot