2016-05-30 8 views
0

先週thisスレッドを作成しましたが、返事がありませんでした。おそらくあまりにも言葉が弱すぎて理解できませんでした。 python 3.5およびそのデフォルトminidomを使用してminidomを使用してXML内の単一の開始タグまたは終了タグを削除する方法

、私はそれは、これを有効にすることが可能ですかどうかを知りたい:この(親要素の無い開始タグ)に

<EditData_Score> 
<EditDataType>BEAT_SCORE</EditDataType> 
<Beat> 
<EditDataType>BEAT_MARK</EditDataType> 
</Beat> 
</EditData_Score> 

<EditDataType>BEAT_SCORE</EditDataType> 
<Beat> 
<EditDataType>BEAT_MARK</EditDataType> 
</Beat> 
</EditData_Score> 

とあるいは、この(親要素の無い終了タグ):私は行番号を知っていれば

<EditData_Score> 
<EditDataType>BEAT_SCORE</EditDataType> 
<Beat> 
<EditDataType>BEAT_MARK</EditDataType> 
</Beat> 

私が思うだろう私はちょうどそのように削除することができますが、私がそこで研究したことから、ミニドームでそれを行うためのきれいな方法ではありません。

ありがとうございます!

+0

'親要素'によって 'ルート要素'を意味しますか? – TheLazyScripter

+0

返信いただきありがとうございます、TheLazyScripter。私はxmlの単語の私の欠如のために謝罪します。 私はXML要素の98%がその中にネストされているので、この素子行がルートであると思うだろう[本](http://www.w3schools.com/xml/xml_tree.asp)XMLツリー構造を参照する。 ; 基本的には、他の要素を含む子要素から開始タグまたは終了タグ(両方ではない)を削除する必要があります。 – kusogaki

答えて

0

XMLデータがDOM表現にロードされるとき、タグを開く/閉じるという概念は存在しません。 DOMは約の要素とその内容を知っています。タグの存在(オープンとクローズ)は、DOMのシリアル化されたバージョンでのみ行われなければならない。すなわち、それらは直列化されたエンコーディングの必要部分であるが、ドキュメントのセマンティクスの一部ではない。

複数のトップレベルタグを含むシリアル化表現、または開始タグまたは終了タグがないことは、XMLドキュメントの有効な表現ではなく、DOMにロードする(またはDOMでプログラムで作成する)こともできません。

これを行わなければならない場合は、出力フィルタまたは別のプログラムを使用して出力を後処理したり、カスタムシリアライザを書き込んだりする必要があります。

+0

Jim Garrison、簡潔に説明してくれてありがとう。おかげさまで、私はそれをどのように使用するのかをよりよく理解しています。開始タグと終了タグを削除する必要があるかどうかは完全にはわかりません。要素の内容を操作する必要があることは確かです。 – kusogaki

関連する問題