0

XMLファイルを入力として受け入れるこのPythonコードがあります。実行を実行すると、質問のタイトルに示されているエラーが表示されます。

for event,element in cElementTree.iterparse(io, events = ( b'start',b'end')):
    if event == b'start':
        self.TreeBuilder.start(element.tag, element.attrib)

エラー

> File "/usr/lib/python2.7/site-packages/pymzml/run.py", line 370, in
> __init__
>     self.TreeBuilder.start(element.tag, element.attrib) 
      cElementTree.ParseError: multiple elements on top level

この問題を解決するのを手伝ってください!ありがとうございました。

4

1 に答える 1

1

私が正しく推測している場合、TreeBuilderがルート化されたドキュメントを期待している間に、複数のルートノードを持つXMLフラグメントを解析しているように見えます。

解析を呼び出しでラップして、単一のルートノードを持つツリーを作成してみてください。言い換えると:

self.TreeBuilder.start("root", {})
[...]
for event,element in cElementTree.iterparse(io, events = ( b'start',b'end')):
    if event == b'start':
        self.TreeBuilder.start(element.tag, element.attrib)
[...]
self.TreeBuilder.end("root")

結果のDOMの上部にこの余分な要素があることを覚えておいて、それを考慮して処理を変更してください。

于 2013-03-11T22:49:34.430 に答える