XML::LibXML 将 é 转换为 é

问题描述 投票:0回答:0

我有一个包含以下内容的test.xml文件:

<div value="éclair">éclair</div>

我正在使用以下 perl 代码来提取和打印它:

use strict;

use XML::LibXML;
use XML::LibXML::Reader;
use utf8;
my $parser = XML::LibXML->new();

open my $fh, "<", "test.xml";

my $reader = XML::LibXML::Reader->new(IO => $fh, recover => 1, suppress_errors => 1, huge => 1000000000);


while ($reader->read) {
    next unless $reader->nodeType == XML::LibXML::Reader->XML_READER_TYPE_ELEMENT;
    next unless $reader->name eq "div";
    my $html = $reader->readOuterXml;
    my $doc = $parser->load_xml(string => $html);

    print $doc->toString() . "\n";

}

但是这个打印出来:

<?xml version="1.0"?>
<div value="&#xE9;clair">&#xE9;clair</div>

é
字符已被编码为
&#xE9;

有没有办法避免这个编码过程?或者我如何在 perl 中将

&#xE9;
解码为
é

xml perl libxml2
© www.soinside.com 2019 - 2024. All rights reserved.