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

标签 xml perl parsing cdata xml-twig

我是 Perl 的新手,所以我没有使用它的经验,我必须使用 TWIG 和 Perl 从以下 xml 文件中提取 CDATA 中的内容:

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

    ...
    ]]>
    </text>

抱歉,如果这个问题在某处重复出现。 提前致谢。

最佳答案

使用 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

...

关于xml - 如何使用 Perl 使用 TWIG 提取 CDATA 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17577024/

相关文章:

.net - 通过 HTTP 将用户名和密码以明文形式发送到 Web 服务

Perl - 如何使用元素数组作为键创建动态多级哈希

regex - 为什么这个正则表达式不贪心?

perl - libnova 北纬 89.5 度的奇怪行为

javascript - Web Speech API 中语法的作用

java - 推荐的 TCP 缓冲区大小?建议分手吗?

xml - 使用 Powershell 将 XML 文件远程保存到服务器

c# - 如何从Xml作为对象而不是字符串检索值?

java - 使用 com.fasterxml.jackson 而不是 org.json 解析 Json

C strncat 不工作并引发访问冲突