通过装饰器进行对象-XML 映射的 Python 框架?

标签 python xml serialization decorator

对 XML 序列化框架的易用性印象深刻 Simple在 Java 中的 XML 中,我尝试寻找 Python 对应项,以便以类似的方式实现类及其 XML 序列化。到目前为止,我或多或少空手而归,尽管有一些有趣的候选者(但据我所知,没有一个方便地使用 decorators );例如,我开始查看 dexml ,但是我被一个简单的例子难住了,就像实现一个允许反序列化的类一样简单

<Error Code="0">OK</Error>

使用 Java 中的 Simple,我可以编写一个类,例如

@Root(name="Error")
public class Error {

    @Attribute(name = "Code")
    private int code;  // public getter and setter

    @Text(required = false) 
    private String description; // public getter and setter
}

Python 中是否已经有一个与 Simple for Java 类似的框架?我更喜欢 Python 2.6 支持,尽管这不是强制性的;如果它仅支持 Python 3,我也会研究它。

最佳答案

实际上 dexml 中支持这种语法。我花了一段时间才弄清楚(阅读源代码有帮助)。

class Error(dexml.Model):
    code = dexml.fields.String()
    value = dexml.fields.String(tagname=".")

下面将返回desire的xml渲染:

e = Error(code="0",value="OK")
print e.render(fragment=True)

关于通过装饰器进行对象-XML 映射的 Python 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19800738/

相关文章:

python - 如何在 Python2 和 3 上打开一个已知编码的文件?

javascript - 有没有办法通过属性获取元素xml?

xml - 使用 XSLT 1.0 将 XML 元素根据某些条件按顺序分组到桶中

php - 使用 xpath 查找节点

json - 如何对使用转换器的 Grails 服务进行单元测试?

c# - 二进制格式化程序 - 类型 UserControl 未标记为可序列化

Java8 Lambda 反序列化 - ClassCastException

python - 如何使用 Nose 忽略特定文件夹中的所有测试?

python - 我的功能保存到 pickle 不工作

python - 不能在 OpenCV 中使用 SURF、SIFT