0

これは、解析しようとしている xml ファイルです。このファイルにはルート タグがありません。

<data txt="some0" txt1 = "some1" txt2 = "some2" >
     <data2>
            < bank = "SBI" bank2 = "SBI2" >
     <data2>
     <data3>
            <branch = "bang1" branch = bang"2" >
     <data3>
<data>

私のスクリプトには以下の行が含まれています。以下は、解析後に特定のデータを取得するために使用できます。

data = re.findall("<data txt=.*?</data>", re.DOTALL)
tree = ElementTree.fromstringlist(data)

ルートタグがないため、このファイルを解析できません。ファイルにタグがない場合の解析方法を教えてください??

4

1 に答える 1

1

すでにコメントで指摘されているように、すべてを解析できます。ルート要素の欠落が問題の場合は、ファイルの内容を文字列として取得し、最初と最後に任意のルート タグを追加できます。

stringdata = "<myroot>%s</myroot>" % stringdata

次に、文字列を解析します。

編集:

コメントへのお返事です。

文字列が 1 つの場合は fromstring が必要になりますが、ほぼ確実に同じエラーが発生します。他にも何かが起こっています。これを試して ...

from xml.etree import ElementTree
stringdata = "<myroot>%s</myroot>" % stringdata
tree = ElementTree.fromstring(stringdata)

次に、ツリーから必要なものを取得します。

于 2013-07-07T18:32:28.367 に答える