我如何从例如更改我的xml的外观
<root>
<elem1>
<value>
122
</value>
<text>
This_is_just_a_text
</text>
</elem1>
<elem1>
<value>
122
</value>
<text>
This_is_just_a_text
</text>
</elem1>
</root>
看起来像:
<root>
<elem1>
<value>122</value>
<text>This_is_just_a_text</text>
</elem1>
<elem1>
<value>122</value>
<text>This_is_just_a_text</text>
</elem1>
</root>
我只是想知道是什么原因导致的?顺便说一下,下面的方法/函数用于添加缩进!
def prettify(elem):
"""
Return a pretty-printed XML string for the Element.
"""
rough_string = ET.tostring(elem, 'utf-8')
reparsed = minidom.parseString(rough_string)
return reparsed.toprettyxml(indent="\t")
我正在为只有一天有同样问题的人写这个答案。
在这里我发现了!在python2.7.3之前,所有python版本的内置方法toprettyxml()中实际上都存在一个错误,该错误导致xml输出中添加了多余的空格和新行。因此,如果您使用的是python 2.7.3或更高版本,则可以使用问题中提供的prettify()方法,并且不会看到任何多余的行或空格,但是如果您使用的是旧版本,则可以通过以下方法进行修复使用“正则表达式”:
def prettify(elem):
"""
Return a pretty-printed XML string for the Element.
"""
rough_string = ET.tostring(elem, 'utf-8')
reparsed = minidom.parseString(rough_string)
uglyXml = reparsed.toprettyxml(indent="\t")
pattern = re.compile('>\n\s+([^<>\s].*?)\n\s+</', re.DOTALL)
return pattern.sub('>\g<1></', uglyXml)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句