我需要先清理一个 xml 文件,然后才能处理它。该文件的开头和结尾有垃圾,然后在元素之间有垃圾。这是一个示例文件:
junkjunkjunkjunk<root>
\par junkjunkjunkjunkjunk<level1>useful info to keep</level1>
</root>
junkjunkjunkjunk
如何使用正则表达式删除(替换?)开始和结束垃圾,然后是中间垃圾?中间的垃圾总是以“\par ...”开头。
以下语句应该删除垃圾(假设您的文档存储在名为 的变量中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
),否则您可能需要稍微调整一下。