我有一个xsd
,我使用pyxb
来生成对象类。到目前为止一切正常,我能够接收文档,错误处理等工作正常。我唯一的问题是,我的xsd中有以下内容:
<xs:element name="users">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="user" />
</xs:sequence>
</xs:complexType>
</xs:element>
我在别处定义了user
复杂类型。有时候我想从主xml文档中取一个user
,我想从它创建python类绑定......但是我无法做到。 pyxb
只允许我从整个文档创建(使用CreateFromDocument
函数)。反正只有那个user
元素?
我读了以下内容:
https://developer.yahoo.com/python/python-xml.html
http://pyxb.sourceforge.net/api/pyxb.binding.basis.element-class.html
答案 0 :(得分:1)
CreateFromDocument()将为任何XML片段创建绑定,该片段是架构中的顶级元素。所以你应该能够做到:
instance = user_xsd.CreateFromDocument(string)
首先不通过dom实例。在测试目录中有很多例子可以做到这一点。
答案 1 :(得分:0)
所以答案被隐藏在文档中。
http://pyxb.sourceforge.net/PyXB-1.2.2/examples.html
说你有一个user
xml文档。你可以这样做:
from xml.dom import minidom
dom = minidom.parseString(string)
# import the xml file you get from pyxbgen
import user_xsd
user_xsd.CreateFromDOM(dom.documentElement)