有人能帮帮我吗?我需要用XML::LibXML模块替换使用Perl的XML节点。
这是XML文件的片段:
<utenti>
<utente>
<username>amministratore</username>
<useremail>admin@email.com</useremail>
<password>0000</password>
</utente>
</utenti>我需要替换密码的值。
特别是,我必须在XML文件中找到具有特定用户名(由cookie $userCookie提供)的用户,并将其密码替换为变量$newPSW。
我试过这个:
my $psw = $doc->findnodes("/utenti/utente[username=\"$userCookie\"]/password");
my $parent = $psw->parentNode;
$parent->removeChild($psw);
my $password = XML::LibXML::Element->new('password');
$password->appendText( $newPSW );
$parent->appendChild($password);但是,每次浏览器给出以下错误:
Can't locate object method "parentNode" via package "XML::LibXML::NodeList"似乎找不到我用的任何方法。
有人能帮忙吗?
发布于 2015-05-19 09:14:22
结果是得到了一个XML::LibXML::NodeList。并且这个对象没有函数parentNode。您必须获得数组的第一个元素,然后调用它上的方法parentNode。
第一个对象将是类XML::LibXML::Node的对象,它有一个函数parentNode。
有关详细信息,请参阅XML::LibXML::Node文档
my $psw = $doc->findnodes("/utenti/utente[username=\"$userCookie\"]/password");
my $parent = $psw->[0]->parentNode;
$parent->removeChild($psw->[0]);https://stackoverflow.com/questions/30321246
复制相似问题