0

我需要先清理一个 xml 文件,然后才能处理它。该文件的开头和结尾有垃圾,然后在元素之间有垃圾。这是一个示例文件:

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

如何使用正则表达式删除(替换?)开始和结束垃圾,然后是中间垃圾?中间的垃圾总是以“\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 回答