3

我需要在 Perl 中解析一个 XML 文件。文件的一部分单独存储,作为系统实体插入。不过,这个问题很常见。但是我无法获得任何信息来解决它。

<?xml version="1.0"?>
<!DOCTYPE RootNode [
    <!ENTITY externalContent SYSTEM "ext.txt">
]>
<RootNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../release/bin/schenma.xsd">
    &externalContent;
</RootNode>

使用 Pure Perl SAX 解析此文件时,我只获得有关元素和字符的信息。实体作为字符处理。它被引用的文本替换,也被替换为ext.txt类似的内部实体。SYSTEM 关键字似乎被忽略了。

4

1 回答 1

1

使用 Pure Perl SAX 是否重要?我已经尝试过XML::LibXMLXML::Parser,它们都正确处理了带有外部实体的 XML。

use XML::LibXML;
my $document = XML::LibXML->load_xml(location => 'file.xml');
print $document->toString();
于 2013-03-12T15:37:35.320 回答