Perl XML Simple XMLOut编码问题并丢失换行符

时间:2011-05-14 12:48:21

标签: xml perl utf-8

我遇到了一些麻烦。我正在写一个从欧洲议会获取新闻的剧本。它从例如

中获取内容

http://www.europarl.europa.eu/sides/getDoc.do?pubRef=-//EP//TEXT+IM-PRESS+20110401STO16789+0+DOC+XML+V0//BG

我使用以下代码保存内容:

my $fh;
open($fh, ">","articles/".$article{"ref"}.".xml");
    XMLout($ref, OutputFile => $fh, XMLDecl=>"<?xml version='1.0' encoding='utf-8' ?>", KeyAttr=>["lang"]);
close($fh);

这是我第一次这样做。然而,当我通过XMLin再次读取文件时,它会丢失其换行符,并且根据写入的内容,某些字符也会出现缺陷。

这是一个示例脚本:

use XML::Simple;

my $ref=XMLin("articles/20110401STO16789.xml");
open(my $fh, ">test.xml");
XMLout($ref, OutputFile => $fh, XMLDecl=>"<?xml version='1.0' encoding='utf-8' ?>", KeyAttr=>["lang"]);
close($fh);

你有什么想法,为什么会出现这个问题?

我还将脚本以及示例脚本和两个xml文件上传到: http://www.stephan-muller.com/euronews.zip

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

不要将内容放在属性值中。将内容放入元素内容中。空白在那里很重要。