我有一些行为良好的 xml 文件,我想使用正则表达式重新格式化(不解析!)。目标是让每一<trkpt>
对都成为单线。
以下代码有效,但我希望在单个正则表达式替换而不是循环中执行操作,这样我就不需要将字符串连接回来。
import re
xml = """
<trkseg>
<trkpt lon="-51.2220657617" lat="-30.1072524581">
<time>2012-08-25T10:20:44Z</time>
<ele>0</ele>
</trkpt>
<trkpt lon="-51.2220657617" lat="-30.1072524581">
<time>2012-08-25T10:20:44Z</time>
<ele>0</ele>
</trkpt>
<trkpt lon="-51.2220657617" lat="-30.1072524581">
<time>2012-08-25T10:20:44Z</time>
<ele>0</ele>
</trkpt>
</trkseg>
"""
for trkpt in re.findall('<trkpt.*?</trkpt>', xml, re.DOTALL):
print re.sub('>\s*<', '><', trkpt, re.DOTALL)
sed
也欢迎使用答案。
谢谢阅读