我正在使用XML::DOM::Parser
库来读取XML文件,进行一些小的调整并再次将其转储回来。文件中有一些编码实体,我想以编码形式保存它们。我已经尝试使用NoExpand选项进行解析,但它似乎仍然在扩展实体。以下是该问题的最小示例:
use XML::DOM;
my $parser = new XML::DOM::Parser(NoExpand => 1);
my $doc = $parser->parse('<?xml version="1.0" encoding="UTF-8"?><MyTest Content=" "/>');
print $doc->toString;
输出如下(注意实体已扩展):
<?xml version="1.0" encoding="UTF-8"?><MyTest Content="^M"/>
我正在使用ActiveState Perl 5.16.3.1603和XML :: DOM 1.44以及XML :: Parser 2.41
有没有办法让NoExpand
不能扩展,我错过了?
答案 0 :(得分:1)
这需要一些文档潜水。正如您在XML::DOM::Parser的文档中看到的那样:
或多或少支持 XML :: Parser NoExpand选项
的相关文档如果尚未注册默认处理程序,则此操作无效,并且对实体引用内部属性值的扩展没有影响。
因此,如果此解析器中的此功能完全适合您,则它不适用于属性值。如果这对你真的很重要: