2011-09-10 137 views
3

我与1000个实体,如下面的模板XML:如何处理具有相同名称的子节点?

<data> 
    <row> ded</row> 
    <row> def </row> 
    <row> fff </row> 
    <row> fff </row> 

</data> 

我需要XML解析它::嫩枝。

我使用下面的代码:

my $twig = XML::Twig->new(
twig_handlers => { 
    data => sub { 

     my $x1 = $_->first_child_trimmed_text('row'); 
     print $x1; 
     #I need also here to run over the other rows and extract them 

    } 
}); 

我如何可以运行在行和提取它们(它们具有相同的名称)?

回答

6

您可以使用XML :: Twig方法children_trimmed_text() - 它会给你一个孩子的列表,然后你可以迭代。事情是这样的:

data => sub { 
    my @row_children = $_->children_trimmed_text('row'); 
    for my $row (@row_children) { 
     print "$row\n"; 
    } 
} 
2
twig_handlers => { 
# '/data/row' 
# '//row' 
# 'row' 
    '//data/row' 
      => sub { print $_->get_trimmed_text }, 
} 
相关问题