导出的xml格式不正确,但显示为一行? [英] Exported xml isn't well formatted but appears in one line?

查看:128
本文介绍了导出的xml格式不正确,但显示为一行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是代码,但导出的xml格式错误。

Here is the code but the exported xml appears badly formatted.

import xml.etree.ElementTree as ET
import os

sampleXML = """<?xml version="1.0" encoding="ASCII"?>
    <Metadata version="1.0">
        <CODE_OK>510</CODE_OK>
        <DeliveryDate>13/08/2018</DeliveryDate>
    </Metadata>
    """

tree = ET.ElementTree(ET.fromstring(sampleXML))
for folder in os.listdir("YourPath"):         #Iterate the dir
    tree.find("CODE_OK").text = folder        #Update dir name in XML
    tree.write(open(os.path.join(r"Path", folder, "newxml.xml"), "wb")) #Write to XML

如何使导出的xml以正常格式显示?

How to make the exported xml appear normally formatted?

推荐答案

我在 docs xml 模块具有D的实现对象模型接口。我提供了一个简单示例

I found in docs that xml module has an implementation of Document Object Model interface. I provide a simple example

from xml.dom.minidom import parseString

example = parseString(sampleXML) # your string

# write to file
with open('file.xml', 'w') as file:
    example.writexml(file, indent='\n', addindent=' ')

输出:

<?xml version="1.0" ?>
<Metadata version="1.0">


 <CODE_OK>510</CODE_OK>


 <DeliveryDate>13/08/2018</DeliveryDate>


</Metadata>






更新

您也可以这样写

example = parseString(sampleXML).toprettyxml()
with open('file.xml', 'w') as file:
    file.write(example)

输出:

<?xml version="1.0" ?>
<Metadata version="1.0">


    <CODE_OK>510</CODE_OK>


    <DeliveryDate>13/08/2018</DeliveryDate>


</Metadata>

更新2

我复制了您所有的代码,并仅从该网站一个>。而且对我来说工作正常

I copy all your code and only add indent from this site. And for me is working correctly

import xml.etree.ElementTree as ET
import os

sampleXML = "your xml"
tree = ET.ElementTree(ET.fromstring(sampleXML))

indent(tree.getroot()) # this I add

for folder in os.listdir(path):
    tree.find("CODE_OK").text = folder
    tree.write(open(os.path.join(path, folder, "newxml.xml"), "wb"))

这篇关于导出的xml格式不正确,但显示为一行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆