xml - 如何使用 XML::Twig 获取带有其他标签的标签内容?

标签 xml perl xml-twig

#!/usr/bin/perl

use strict;
use warnings FATAL => 'all';
use 5.010;

use XML::Twig;

sub get_xml_from_data {
    my @lines = <DATA>;
    my $xml = join "", @lines;

    return $xml;
}

sub main {
    my $xml = get_xml_from_data();

    my $xt = XML::Twig->new();
    $xt->parse($xml);
    my $root= $xt->root;

    # output 1
    say $root->first_child('element')->sprint;
    # It will print:
    #
    #   <element>
    #           Some content with <b>some</b> <i><b>other</b></i> tags.
    #        </element>

    # output 2
    say $root->first_child('element')->text;
    # It will print:
    #
    #        Some content with some other tags.


    # But I need the output:
    #
    #           Some content with <b>some</b> <i><b>other</b></i> tags.

}

main();

__DATA__
<root>
    <element>
        Some content with <b>some</b> <i><b>other</b></i> tags.
    </element>
</root>

最佳答案

您正在寻找的方法是inner_xml

关于xml - 如何使用 XML::Twig 获取带有其他标签的标签内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13191062/

相关文章:

python - xml 属性的顺序

c# - 同时编写和验证 XML

perl - 这些来自 Tk::After 的 Perl/Tk 错误是什么意思?

xml - Perl:接收XPath元素的多个子级

xml - 如何加速 XML::Twig

perl - 如何使用 XML::Twig 跳过不需要的元素?

java - JAXB 子根元素

java - 将java对象转换为xml?

perl - 发现 Perl 应用程序当前定义的所有变量的最佳方法是什么?

perl - 如何在100个文本文件上的 'search and replace'上以20k项执行最小磁盘I/O(每个行有5万行)