2010-03-22 71 views
2

我需要一个可以将python对象编组为XML(让它为文件)的pythonic库的建议。 我需要能够稍后使用Java(JAXB)读取该XML并解组它。 我知道JAXB有一些问题,使得它不能很好地与.NET XML库配合使用,因此对于实际上可行的东西的推荐将会很棒。Python XML + Java XML互操作性

+6

XML是XML。如果一个库不能正确地解析有效的XML,那么这个库就是错误的,而不是任何“互操作性”。 – 2010-03-22 13:27:31

+0

我不在乎谁在这种情况下有罪。底线是框架不兼容。而我只是想在2个框架上推荐一个可以一起玩的好主意。例如看到这个 http://old.nabble.com/JAX-WS-%22namespace-of-schema-and-import-match%22-td21878972.html – ApriOri 2010-03-23 09:37:03

回答

1

正如Ignacio所说,XML是XML。在python方面,我建议使用lxml,除非您有更好的满足另一个图书馆的更多具体需求。如果你被限制在标准库中,看看ElementTreecElementTree,这也很好,并且启发了(并且在功能上大部分等同于)lxml.etree

编辑:仔细一看,你似乎不只是在寻找XML,而是为了对象的XML表示。为此,请查看lxml.objectify或Amara。我没有尝试过使用它们与Java的互操作性,但它们值得一试。如果您只是在寻找一种数据交换的方式,您也可以尝试自定义的JSON对象。

0

您可能遇到的问题是您用于封送对象的Python和Java库的默认格式。任何像样的图书馆,包括JAXB allows customisation对象如何用XML表示。

您需要决定XML的结构,然后使用您的库功能消耗并发送XML结构而不是依赖于不同编程语言中不同库的默认值。