2013-07-10 5 views
2

Я новичок в Perl, поэтому у меня мало опыта, используя его, и я должен извлечь содержимое внутри CDATA, используя Twig и Perl из следующего файла XML:Как извлечь содержимое CDATA с прутик с помощью Perl

<?xml version='1.0' encoding="utf-8"?> 
    <text> 
    <![CDATA[ 
    1. Democracia ukata Estado de Derecho sutinchata kamachinaka ch’amanchañataki 

    ... 
    ]]> 
    </text> 

Извините, если этот вопрос повторяется где-то. Спасибо заранее.

ответ

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 

...