簡體   English   中英

用XML :: Twig解析XML

[英]Parsing XML with XML::Twig

我有以下具有100個項目的XML格式,如下所示

我想解析它並提取data1和data2如何使用XML :: Twig Perl模塊做到這一點

<Item>
<data1>  <data3> date </data3> </data1>
<data2>   data2 </data2>

</Item>
<Item>
<data1>  <date3> data22 </data3> </data1>
<data2>   data2 </data2>
</Item>
....

您的XML不符合規范,因此沒有解析器可以按原樣對其進行處理。 主要問題是:

  • XML是區分大小寫的,因此Item是除item以外的item
  • 結束標簽以斜杠開頭,而不是反斜杠
  • 應該有頂級元素

解決這些問題后,此代碼可以正常工作:

use strict; use warnings;

use XML::Twig;

my $data = <<END_DATA;
<items>
    <item>
        <data1>   data1 </data1>
        <data2>   data2 </data2>
    </item>
    <item>
        <data1>   data1 </data1>
        <data2>   data2 </data2>
    </item>
</items>
END_DATA


my $t = XML::Twig->new(
    twig_handlers => {
        'item' => sub {
            # process each item and print contents of dataN elements
            print
                $_->first_child_trimmed_text('data1'), "\t",
                $_->first_child_trimmed_text('data2'),"\n";
        },
    },
)->parse($data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM