2017-04-14 12 views
0

私はPythonで解析したいいくつかのxmlファイルを持っています。私はPythonでElementTreeパッケージを認識していますが、私のXMLファイルは構造体のようなツリーには格納されません。以下は例ですPythonで非ツリー構造のXMLデータにアクセスする

<tag1 attribute1="at1" attribute2="at2">My files are text that I annotated with a tool 
to create these xml files.</tag1> 
Some parts of the text are enclosed in an xml tag, whereas others are not. 
<tag1 attribute1="at1" attribute2="at2"><tag2 attribute3="at3" attribute4="at4">Some 
are even enclosed in multiple tags.</tag1></tag2> 
And some have overlapping tags: 
<tag1 attribute1="at1" attribute2="at2">This is an example sentence 
<tag3 attribute5="at5">containing a nested example sentence</tag3></tag1> 

私はElementTreeのような関数を使ってファイルを解析するたびに、最初のタグにアクセスすることができます。私はすべてのタグを解析する方法を探していて、木構造のようなものは望んでいません。どんな助けでも大歓迎です。

+0

例が正しい場合、それは有効なXMLではありません。 2番目のケースでは、tag1を開き、tag2を開き、tag1を閉じます。不正なXMLを推測しようとするライブラリがありますが、まずあなたの例が正しいことを確認してください。 – Javier

+0

また、現在要素にアクセスする方法を投稿してください。 – Javier

+0

XMLは定義上整形式です。このマークアップは、etreeのような準拠のXMLライブラリでは使用できません。これで、あなたが投稿しなかったルートタグがすべてラップされたら、それは有効かもしれません。 – Parfait

答えて

0

1行に1つのXMLフラグメントがある場合、各行を個別に解析するだけです。

for line in some_file: 
    # parse using ET and getroot. 
関連する問題