我是Perl的新手,因此我几乎没有使用它的经验,我必须使用以下xml文件中的TWIG和Perl提取CDATA中的内容:
<?xml version='1.0' encoding="utf-8"?>
<text>
<![CDATA[
1. Democracia ukata Estado de Derecho sutinchata kamachinaka ch’amanchañataki
...
]]>
</text>
对不起,如果这个问题在某处重复。 提前谢谢。
答案 0 :(得分:6)
使用twig_handlers
使用#CDATA
作为xpath表达式进行过滤。
script.pl
的内容:
#!/usr/bin/env perl
use warnings;
use strict;
use XML::Twig;
my $twig = XML::Twig->new(
twig_handlers => {
'#CDATA' => sub { print $_->text },
},
)->parsefile( shift );
像以下一样运行:
perl script.pl xmlfile
产量:
1. Democracia ukata Estado de Derecho sutinchata kamachinaka ch’amanchañataki
...