当前位置: 首页 > 面试题库 >

使用xml.etree.ElementTree打印格式正确的xml文件

单于俊智
2023-03-14
问题内容

我试图xml.etree.ElementTree用Python写出xml文件。问题在于它们总是在一行中生成。我希望能够轻松地引用它们,因此,如果我真的很希望能够将文件干净地写出。

这就是我得到的:

<Language><En><Port>Port</Port><UserName>UserName</UserName></En><Ch><Port>IP地址</Port><UserName>用户名称</UserName></Ch></Language>

这是我想看到的:

<Language>
    <En>
        <Port>Port</Port>
        <UserName>UserName</UserName>
    </En>
    <Ch>
        <Port>IP地址</Port>
        <UserName>用户名称</UserName>
    </Ch>
</Language>

问题答案:

您可以使用toprettyxml()from的功能xml.dom.minidom来做到这一点:

def prettify(elem):
    """Return a pretty-printed XML string for the Element.
    """
    rough_string = ElementTree.tostring(elem, 'utf-8')
    reparsed = minidom.parseString(rough_string)
    return reparsed.toprettyxml(indent="\t")

想法是将您Element的字符串打印出来,使用minidom进行解析,然后使用函数再次将其转换为XML toprettyxml

资料来源:http :
//pymotw.com/2/xml/etree/ElementTree/create.html



 类似资料:
  • 我不明白为什么我一直收到这个错误消息: 在此行中找到多个注释: < li >文档中根元素后面的标记必须格式良好。 < li >错误:解析XML时出错:文档元素后的垃圾信息 该错误在下面的开头找到: XML:

  • 当使用matplotlibs函数时,我遇到了一个奇怪的行为。 我想给一个文件的绘图添加注释,,其中包含: 使用以下代码: 这让我得到了下面这个看起来很奇怪的图,到处都是轴标签,注释在错误的地方(相对于我的数据): 然而,当我使用 而不是 所以我想在一个例子中,使用以前的轴(也用于制作注释),但这会给我一个警告,而在另一种情况下,它会生成一个新的轴实例(因此没有警告),但也会生成一个带有两个重叠轴的

  • 我有一个关于bean的正确格式和用法的问题。xml文件。在我的项目中,我通常将这些内容用于我的bean。xml文件(未使用explizit bean声明): 这在WildFly 8和9中运行得很好。但是我在GlassFish 4中有部署问题。在问题中:Glassfish 4,CDI中的简单示例在WELD-001408中失败。我写了一个替代格式: 这里使用了不同的名称空间。GlassFish4似乎很

  • 我有XML数据在数据库(不是文件),我需要解析它,以提供可能写测试来验证数据在XML xml(内容数据): [致命错误]:14:2:根元素后面的文档中的标记必须格式良好。org.xml.sax.SaxParseException;亚麻编号:14;专栏编号:2;根元素后面的文档中的标记必须格式良好。位于com.sun.org.apache.xerces.internal.parsers.dompar

  • 这是我目前正在处理的问题。 因此,我需要帮助更正今天日期的月份,100天后的日期,我生日的日期,和我生日后的10,000天。任何帮助或洞察力都非常感谢。

  • 我有以下错误:错误:(2)解析XML时出错:格式不正确(无效令牌) 错误:任务执行失败:应用程序:进程DebugResources。 com.android.ide.common.process.ProcessExcture:org.gradle.process.internal.ExecExc0019:进程'命令'E:\AndroidSdk\sdk\build-ols\23.0.2\aapt.e