0

オブジェクトクラスを生成するため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複合型があります。時々user、メインの xml ドキュメントから を取得し、そこから python クラス バインディングを作成したいことがありますが、できません。pyxbドキュメント全体からのみ作成できます(CreateFromDocument関数を使用)。とにかくその1つのuser要素だけを取得する方法はありますか?

私は以下を読みました:

https://developer.yahoo.com/python/python-xml.html

http://pyxb.sourceforge.net/api/pyxb.binding.basis.element-class.html

http://pyxb.sourceforge.net/userref_pyxbgen.html

4

2 に答える 2

1

CreateFromDocument() は、スキーマの最上位要素である XML フラグメントのバインディングを作成します。したがって、次のことができるはずです。

instance = user_xsd.CreateFromDocument(string)

最初に dom インスタンスを経由せずに。tests ディレクトリには、まさにこれを行う多くの例があります。

于 2014-05-13T00:20:52.923 に答える
0

したがって、答えはドキュメントに隠された意志でした。

http://pyxb.sourceforge.net/PyXB-1.2.2/examples.html

1 つのuserxml ドキュメントがあるとします。できるよ:

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)
于 2014-05-12T23:28:39.827 に答える