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(‘ \n‘)
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=‘\t‘))
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的字典,用于存放当前层级的最新节点。便于字节点查找父节点

原文地址:https://www.cnblogs.com/zhugaopeng/p/9665365.html

时间: 2024-10-10 16:49:40

python生成xml文件的相关文章

python 生成 xml文件 属性的顺序问题

需求很奇葩. 文档示例 <ITEM key="username" eng="User Name" chn="用户名" val="小明"/> 用python 的xml 导出的xml文件,相应的内容是 <ITEM  chn="用户名" eng="User Name" key="username" val="小明"/> 我们都知道

Python如何用dom模块生成XML文件

Python如何用dom模块生成XML文件呢? 主要方法三点: 首先.生成XML节点(node) createElement("node_name") 然后.给节点添加属性值(Attribute) node.setAttribute("att_name", "arr_value") 最后.节点的标签值(data) createTextNode("node_value") 其中第1.3点在创建完节点(节点值)之后,还需使用下面的

使用XML序列化器生成XML文件和利用pull解析XML文件

首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message> <sms> <body> 陈驰0 </body> <date> 1462162910995 </date> <address> 1380 </address> <type> 1 </type> &

python创建xml文件

本文是一个使用ElementTree有关类库,生成xml文件的例子 # *-* coding=utf-8 from xml.etree.ElementTree import ElementTree from xml.etree.ElementTree import Element from xml.etree.ElementTree import SubElement from xml.etree.ElementTree import dump from xml.etree.ElementTre

利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析

首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) 1 首先建立一个空白XML文件,直接点击下图所示即可: 2 可以使用xml文本编辑界面,或者使用xml树状图编辑界面 切换到xml树状图编辑界面的方法为: 即可调出当前xml文件所对应的xml树状图编辑界面 3 设计并编辑xml文件 根据自己的需要可以利用xml树状图操作界面来方便的设计自己的xml

使用Pull解析器生成XML文件

有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,这里推荐大家使用Pull解析器. 1.使用Pull解析器生成一个与itcast.xml文件内容相同的myitcast.xml文件,代码在下方 public static String writeXML(List<Person> persons, Writer wri

5.29日 自己程序的编写,目的:生成xml文件

1.创建了XMLModel这个类:本来还有个rebuildformXML的方法,但是现在用不到,以后再说. public interface XmlModel { public void initModel(); public void doSaveXML(); } 2.对AbstractModel这个类进行了修改,最终变为: package hellogef.model; import java.beans.PropertyChangeListener; import java.beans.P

获取mysql内容,生成xml文件,并且以webservice形式发送

<xyt> <news id> <url></url> <title></title> </news> </xyt> 其实是三个知识点综合到一起的,包括如何访问mysql,如何生成xml文件,如何使用进行webservice开发 好了,话不多说,直接粘代码 package com.service; import java.io.FileOutputStream; import java.io.IOExcepti

PHP读取及生成xml文件实测

PHP生成xml文件方法的四个方法,博主google了下http://www.phppan.com/2009/10/use-php-create-xml-file/这篇写的还不错,实测用了php现成支持的DomDocument方式生成xml文件,是可以用的. 注意XMLWriter的方式生成需要PHP开启扩展php-xml支持. 以下是博主亲测可用的demo: $xml = new DOMDocument('1.0', 'utf-8'); $xml_MeetingAttendee = $xml-