我正在使用Perl来解析XML文件。
This tutorial告诉我如何访问XML文件中的元素,我可以做得很好,但我如何从以下文件中访问作者 id号?
<booklist>
<book>
<authors>
<author id="54"/>
<author id="76"/>
</authors>
<title>Book 1 title</title>
<isbn>Book1ISBN</isbn>
</book>
</booklist>
答案 0 :(得分:3)
我在很多帖子中都读到XML::Simple
不适合中等或复杂的解析任务(这不是其中之一)。我喜欢XML::Twig
,所以我推荐它,并会写一个完成工作的例子:
#!/usr/bin/env perl
use strict;
use warnings;
use XML::Twig;
XML::Twig->new(
twig_handlers => {
'/booklist/book/authors/author' => sub {
printf qq|%s\n|, $_->att('id');
},
},
)->parsefile(shift);
在twig_handlers
中,您将xpath
表达式和匿名函数与元素一起作为特殊变量$_
,因此您只需要使用att()
访问其属性功能
使用参数运行它,例如:
perl script.pl xmlfile
产量:
54
76