0

xml ファイルを処理する前にクリーンアップする必要があります。ファイルの最初と最後にジャンクがあり、要素間にジャンクがあります。ファイルの例を次に示します。

junkjunkjunkjunk<root>
\par junkjunkjunkjunkjunk<level1>useful info to keep</level1>
</root>
junkjunkjunkjunk

正規表現を使用して (replace を使用して) 最初と最後のジャンクを切り取り、次に中間のジャンクを切り取るにはどうすればよいですか? 真ん中のジャンクは常に "\par ..." で始まります。

4

1 に答える 1

2

次のステートメントは、ジャンクを削除する必要があります (ドキュメントが という変数に格納されていると仮定しますxml)。

import re

xml = re.sub(r'.*<root>', '<root>', xml, flags=re.DOTALL)    # Remove leading junk
xml = re.sub(r'\\par[^<]*<', '<', xml)                       # Middle junk
xml = re.sub(r'</root>.*', '</root>', xml, flags=re.DOTALL)  # Trailing junk

これは、ルート要素の名前 (この場合はroot) を知っていることを前提としていることに注意してください。そうでない場合は、これを少し調整する必要があります。

于 2013-06-24T15:08:35.683 に答える