首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用XML::LibXML替换XML节点

使用XML::LibXML替换XML节点
EN

Stack Overflow用户
提问于 2015-05-19 09:07:52
回答 4查看 1.1K关注 0票数 3

有人能帮帮我吗?我需要用XML::LibXML模块替换使用Perl的XML节点。

这是XML文件的片段:

代码语言:javascript
运行
复制
<utenti>
    <utente>
        <username>amministratore</username>
        <useremail>admin@email.com</useremail>
        <password>0000</password>
    </utente>
</utenti>

我需要替换密码的值。

特别是,我必须在XML文件中找到具有特定用户名(由cookie $userCookie提供)的用户,并将其密码替换为变量$newPSW

我试过这个:

代码语言:javascript
运行
复制
    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);

但是,每次浏览器给出以下错误:

代码语言:javascript
运行
复制
Can't locate object method "parentNode" via package "XML::LibXML::NodeList"

似乎找不到我用的任何方法。

有人能帮忙吗?

EN

Stack Overflow用户

回答已采纳

发布于 2015-05-19 09:14:22

结果是得到了一个XML::LibXML::NodeList。并且这个对象没有函数parentNode。您必须获得数组的第一个元素,然后调用它上的方法parentNode

第一个对象将是类XML::LibXML::Node的对象,它有一个函数parentNode

有关详细信息,请参阅XML::LibXML::Node文档

代码语言:javascript
运行
复制
my $psw = $doc->findnodes("/utenti/utente[username=\"$userCookie\"]/password");
my $parent = $psw->[0]->parentNode;
$parent->removeChild($psw->[0]);
票数 3
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30321246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档