【发布时间】:2015-10-17 15:05:10
【问题描述】:
正如我的标题所示:我有一个包含以下相关内容的 XML 文件
<element>
<id>ID</id>
<content>
<![CDATA[
]]>
</content>
</element>
我正在使用 XML::Simple 来解析这个:
$localElement = XMLin( $localElementXML, NoAttr=>1, SuppressEmpty=>'' )
这导致了这个 perl 哈希:
{
'content' => '',
'id' => 'ID'
};
如果我在该空 CDATA 块的中间插入除空格以外的任何内容,则所有空格都会保留:
{
'content' => '
--
',
'id' => 'ID'
};
我需要实现的是保留空白(基本上是一个长的空字符串),即使中间没有其他字符。是的,我正在使用“SuppressEmpty”,但我认为该元素不是空的,它是一个充满空格、换行符等的 CDATA 块。我错过了什么吗?我怎样才能让它工作?我还没有找到任何明显的 XML::Simple 选项来改变这种行为。
非常感谢。
【问题讨论】:
-
简单地说,XML::Simple 是可怕的。不要使用它。它自己的文档说 不鼓励在新代码中使用此模块。其他模块也可以提供更直接和一致的界面。
标签: xml perl xml-parsing