python生成xml文件

Posted 随性者也

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python生成xml文件相关的知识,希望对你有一定的参考价值。

先上代码:

 1 #!/usr/bin/env python3
 2 # _*_ coding: utf-8 _*_
 3  5 from xml.dom.minidom import Document
 6 
 7 def readFile(filename, lines):
 8     with open(filename, r) as f:
 9         for line in f:
10             line = line.rstrip( 
)
11             if line.startswith(//) or len(line) == 0:
12                 continue
13             lines.append(line)
14 
15 def writeXml(filename, lines, tagNames):
16     # 创建doc
17     doc = Document()
18     # 创建根节点
19     root = doc.createElement(tagNames[0])
20     doc.appendChild(root)
21 
22     # 记录每层节点的最新元素
23     nodes = {0: root}
24 
25     for line in lines:
26         index = line.rfind( )
27         level = (index + 1) / 4 + 1
28         line = line.lstrip( )
29         
30         node = doc.createElement(tagNames[level])
31         node.setAttribute(name, line)
32 
33         nodes[level - 1].appendChild(node)
34         nodes[level] = node
35 
36     with open(filename, w) as f:
37         f.write(doc.toprettyxml(indent=	))
38 
39 def display(lines):
40     for line in lines:
41         print(line)
42 
43 if __name__ == __main__:
44     lines = []
45     readFile(./file/sector.txt, lines)
46 
47     tagNames = [SectorFile, Sectors, sector, sector_second]
48     writeXml(./file/sector.xml, lines, tagNames)

1. 使用库 xml.dom.minidom

2. readFile函数

这个函数的功能上读取文件,并把每一行内容除去右边空格,存入列表中

参数一:文件名

参数二:文件行存入的列表

3. writeXml函数

功能:读取列表,生成xml文件

参数一:生成的xml文件名

参数二:文件行列表

参数三:xml标签名

此处读取的文件,左侧是通过tab键进行分层的。但由于编辑器设置的一个tab键,替换成四个空格。所以此处的规律是查找最后一个空格出现的位置,加1除4就可以得到该文件在xml中所处的层级。

 

第22行:此处的目的是建立一个level-node的字典,用于存放当前层级的最新节点。便于字节点查找父节点

以上是关于python生成xml文件的主要内容,如果未能解决你的问题,请参考以下文章

android.view.InflateException:二进制 XML 文件第 15 行:二进制 XML 文件第 19 行:膨胀类片段时出错

python xml文件解析 及生成xml文件

python生成xml文件

vscode代码片段生成vue模板

当我切换到包含片段的活动时应用程序崩溃(二进制 XML 文件第 10 行:二进制 XML 文件第 10 行:膨胀类片段时出错)

LINQ to XML - 从文件加载 XML 片段