相关疑难解决方法(0)

使用xml.etree.elementtree打印格式良好的xml文件

我试图xml.etree.elementtree用Python写出xml文件.问题在于它们不断生成一行.我希望能够轻松地引用它们,所以如果它可能我真的希望能够干净利落地写出来.

这就是我得到的

<Language><En><Port>Port</Port><UserName>UserName</UserName></En><Ch><Port>IP??</Port><UserName>????</UserName></Ch></Language>
Run Code Online (Sandbox Code Playgroud)

这是我想看到的.

<Language>
    <En>
        <Port>Port</Port>
        <UserName>UserName</UserName>
    </En>
    <Ch>
        <Port>IP??</Port>
        <UserName>????</UserName>
    </Ch>
</Language>
Run Code Online (Sandbox Code Playgroud)

python xml elementtree

49
推荐指数
2
解决办法
9万
查看次数

使用toprettyxml()时新行的问题

我目前正在python脚本中使用xml.dom模块的toprettyxml()函数,我对换行有一些麻烦.如果不使用newl参数或者如果我使用toprettyxml(newl ='\n'),它实际上会显示几行而不是一行.

例如

f = open(filename, 'w')
f.write(dom1.toprettyxml(encoding='UTF-8'))
f.close()
Run Code Online (Sandbox Code Playgroud)

显示:

<params>


    <param name="Level" value="#LEVEL#"/>


    <param name="Code" value="281"/>


</params>
Run Code Online (Sandbox Code Playgroud)

有谁知道问题的来源以及如何使用它?仅供参考我使用的是Python 2.6.1

python xml

10
推荐指数
3
解决办法
1万
查看次数

使用 python xml.etree 模块格式化插入的元素,以包含新行

我将单个元素插入到一个大的 xml 文件中。我希望插入的元素位于顶部(所以我需要使用 root.insert 方法,而不能只是附加到文件中)。我还希望元素的格式与文件的其余部分相匹配。

原始 XML 文件的格式为

<a>
    <b>
        <c/>
    </b>
    <d>
        <e/>
    </d>
    ....
</a>
Run Code Online (Sandbox Code Playgroud)

然后我运行以下代码:

import xml.etree.ElementTree as ET    

xmlfile = ET.parse('file.xml')
a = xmlfile.getroot()

f = ET.Element('f')
g = ET.SubElement(f,'g')

a.insert(1, f)

xmlfile.write('file.xml')
Run Code Online (Sandbox Code Playgroud)

它以以下形式创建输出:

<a>
    <b>
        <c/>
    </b>
    <f><g/></f><d>
        <e/>
    </d>
    ....
</a>
Run Code Online (Sandbox Code Playgroud)

但我想要它的形式:

<a>
    <b>
        <c/>
    </b>
    <f>
        <g/>
    </f>
    <d>
        <e/>
    </d>
    ....
</a>
Run Code Online (Sandbox Code Playgroud)

使用 Jonathan Eunice 的解决方案“如何让 Python 的 ElementTree 漂亮地打印到 XML 文件?” 我添加了以下代码来替换 xmlfile.write 命令:

from xml.dom import minidom
xmlstr = minidom.parseString(ET.tostring(a)).toprettyxml(indent=" …
Run Code Online (Sandbox Code Playgroud)

python xml pretty-print elementtree xml.etree

5
推荐指数
1
解决办法
5860
查看次数

如何使用 Python 创建 XML 文件?

我想创建一个 XML 文件。我试过了,但格式看起来很糟糕,它只显示一行。

就这个:

import xml.etree.cElementTree as ET
root = ET.Element("data")
doc = ET.SubElement(root, "status", date="20210123")

ET.SubElement(doc, "name", name="john").text = "some value1"
ET.SubElement(doc, "class", name="abc").text = "some vlaue2"

tree = ET.ElementTree(root)
tree.write("FILE.xml")
Run Code Online (Sandbox Code Playgroud)

输出是:

<data><status date="20210123"><name name="john">some value1</name><class name="abc">some vlaue2</class></status></data>
Run Code Online (Sandbox Code Playgroud)

但我的期望输出是:

<?xml version="1.0" encoding="UTF-8"?>

<data>
     <status>
          <name name="john">some value1</name>
          <class name="abc">some vlaue2</class>
     </status>
</data>
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一个想法,请。我真的很感激。谢谢

python xml pretty-print elementtree

1
推荐指数
1
解决办法
7794
查看次数

标签 统计

python ×4

xml ×4

elementtree ×3

pretty-print ×2

xml.etree ×1