Python XML序列化器

问题描述:

有些人可以推荐一个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

pyxslt.serialize看起来最接近你的规格,但不是100%映像(例如,它不记录类型 - 只是把一切都变成字符串) 。从定制的角度来看,它仍然是一个很好的基础(也许通过复制/粘贴/编辑,如果它没有提供你需要的所有钩子来实现更清晰的定制)。

+0

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