2009-09-30 38 views
0

有些人可以推薦一個XML序列化器,它是以元素或屬性爲中心的,並且不使用鍵值對。Python XML序列化器

例如,GAE db.model有to_xml()函數,但它寫出這樣的:

<property name="firstname" type="string">John</property> 
    <property name="lastname" type="string">Doe</property> 
    <property name="city" type="string">Dallas</property> 
    <property name="dateTimeCreated" type="gd:when">2009-09-30 19:45:45.975270</property> 

從我記得,這些都是非常困難的XSLT工具不是簡單的元素/屬性映射像這樣:

所需的輸出

<firstname>John</firstname> 
    <lastname>Doe</lastname> 
    <city>Dallas</city> 
    <dateTimeCreated type="gd:when">2009-09-30 19:45:45.975270</dateTimeCreated> 

我只是想Gnosis的lib和我第一次嘗試的工作,但也創造了名稱值對這樣的事情:

<attr name="__coredata__" type="dict" id="4760164835402068688" > 
    <entry> 
     <key type="string">firstname</key> 
     <val type="string">John</val> 
    </entry> 
    <entry> 
     <key type="string">lastname</key> 
     <val type="string">Doe</val> 
    </entry> 
    etc... 

感謝,

尼爾·沃爾特斯

+0

我結束了使用檢查(aka反射)編寫自定義代碼。它確實不那麼難。 – NealWalters 2009-10-02 18:04:41

回答

2

pyxslt.serialize看起來最接近你的規格,但不是100%映像(例如,它不記錄類型 - 只是把一切都變成字符串) 。從定製的角度來看,它仍然是一個很好的基礎(也許通過複製/粘貼/編輯,如果它沒有提供你需要的所有鉤子來實現更清晰的定製)。

+0

看了一下,似乎需要依賴於C的libxml2(http://xmlsoft.org/),因此不能與GAE一起使用。 – NealWalters 2009-10-01 15:43:59