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...
感谢,
尼尔·沃尔特斯
答
pyxslt.serialize看起来最接近你的规格,但不是100%映像(例如,它不记录类型 - 只是把一切都变成字符串) 。从定制的角度来看,它仍然是一个很好的基础(也许通过复制/粘贴/编辑,如果它没有提供你需要的所有钩子来实现更清晰的定制)。
+0
看了一下,似乎需要依赖于C的libxml2(http://xmlsoft.org/),因此不能与GAE一起使用。 – NealWalters 2009-10-01 15:43:59
我结束了使用检查(aka反射)编写自定义代码。它确实不那么难。 – NealWalters 2009-10-02 18:04:41