访问XML文件中的元素属性

时间:2015-02-26 23:24:35

标签: xml perl

我正在使用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>

1 个答案:

答案 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