【发布时间】:2025-11-24 14:00:02
【问题描述】:
我有下面的 xml 文件,在这个文件中我想编写一个 perl 脚本,以便我可以 grep 第一本书的名字,然后是作者的名字,如果它们都匹配,则将字段“值”从 false 更改为 true。例如,如果书名是 abc,作者名是 john,则将值从 false 更改为 true。
use warnings;
use strict;
use XML::LibXML;
my $parser = XML::LibXML->new();
my $xmldoc = $parser->parse_file('b.xml');
for my $book ($xmldoc->findnodes('/library/book')) {
my $name = $book->findvalue('/@name');
if($name eq "abc")
{
print "yes" ;
}
}
<library>
<book name="abc" id="3">
<key name="history">
<default label="base" value="1"/>
</key>
<author name="john">
<default label="base" value="false"/>
</author>
</book>
<book name="xyz" id="4">
<key name="science">
<default label="base" value="1"/>
</key>
<author name="nik">
<default label="base" value="false"/>
</author>
</book>
我是 perl 新手,有人可以帮我吗?我已经编写了一些代码来达到检查作者姓名的第一点,但这本身不起作用。
【问题讨论】:
标签: perl