我在尝试用python序列化libxml2对象时遇到了一些问题。
特别是,如果我运行:
xmlstring = cdoc.serialize('UTF-8', 1)其中cdoc是之前创建的libxml2文档,
我有这样的东西:(在mac - port python 2.5.6上)
<?xml version="1.0" encoding="UTF-8"?>
<body>
<journal>
<journal_metadata language="en">
<full_title>Contributions of Lick Observatory</full_title>
<issn media_type="print">1750-0095</issn>
<coden>CoLic</coden>
</journal_metadata>
</journal>
</body>而在Linux (带有python 2.4或2.6的Centos 5.6 )上,我有:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<journal>
<journal_metadata language="en">
<full_title>
Contributions of Lick Observatory
</full_title>
<issn media_type="print">
1750-0095
</issn>
<coden>
CoLic
</coden>
</journal_metadata>
</journal>
</body>字符串节点的缩进有问题。
现在我可以通过这样做来解决这个问题:
xmlstring = cdoc.serialize('UTF-8')没有缩进选项,但输出格式可读性不是很好。
有没有办法解决输出中令人尴尬的缩进问题?
发布于 2011-08-19 00:08:15
我只是注意到我在跑:
xmlstring = cdoc.serialize('UTF-8', 2) 而不是
xmlstring = cdoc.serialize('UTF-8', 1) 由于某些原因,这在libxml2 2.6上也缩进了文本节点,而在libxml2 2.7上不缩进。
发布于 2011-08-18 23:46:40
这可能是不同机器上的libxml2版本之间的行为差异。尝试将最旧的版本升级到较新的版本(或较新的版本)。
https://stackoverflow.com/questions/7100047
复制相似问题