2011-08-17 70 views
1

我在嘗試序列化python中的libxml2對象時遇到了一些問題。python libxml2序列化問題

特別是,如果我運行:

xmlstring = cdoc.serialize('UTF-8', 1) 

其中CDOC是之前創建一個libxml2的文件,

我有這樣的事情:(在Mac上 - 端口蟒蛇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(5.6的Centos與Python 2.4或2.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') 

不爲縮進的選項,但輸出格式不是很有可讀性。

有沒有辦法解決輸出的尷尬壓痕?

+0

兩種平臺上的libxml2版本是什麼? –

+0

在mac上是libxml2_2.7.8和py25-libxml2_2.6.21;在CentOS 2_2.6.26 –

+0

好的...我認爲問題是libxml2的版本...我嘗試在Centos6上使用libxml2 2.7.something,它工作正常。感謝您的建議。 –

回答

1

我只注意到我正在運行:

xmlstring = cdoc.serialize('UTF-8', 2) 

,而不是

xmlstring = cdoc.serialize('UTF-8', 1) 

此,由於種種原因,在libxml2的2.6縮進也文本節點和libxml2的2.7不。

0

它可能是不同機器上libxml2版本之間的行爲差​​異。嘗試將最舊的版本升級到較新的版本(或更新的版本)。

+0

將上述問題的評論轉換爲答案,以便問題可以標記爲已回答。 –

+0

更新CENTOS5令人頭疼!無論如何感謝您的答案 –