如何使用Perl使用TWIG提取CDATA内容

ric*_*k_1 2 xml perl parsing cdata xml-twig

我是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>
Run Code Online (Sandbox Code Playgroud)

对不起,如果这个问题在某处重复.提前致谢.

Bir*_*rei 6

用于twig_handlers使用#CDATAxpath表达式进行过滤.

内容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 );
Run Code Online (Sandbox Code Playgroud)

运行它像:

perl script.pl xmlfile
Run Code Online (Sandbox Code Playgroud)

产量:

1. Democracia ukata Estado de Derecho sutinchata kamachinaka ch’amanchañataki

...
Run Code Online (Sandbox Code Playgroud)