创建xml文件、解析xml文件
1.创建XML文件:
import codecs import xml.dom.minidom
doc=xml.dom.minidom.Document() print doc
root=doc.createElement("booklist")
print u"添加的xml标签为",root.tagName
root.setAttribute("type","science and engineering")
value=root.getAttribute("type")
print u"root元素的'type'属性值为:",value
#添加第一本书:
book=doc.createElement("book")
book.setAttribute("category","math")
title=doc.createElement("title")
title.appendChild(doc.createTextNode("learning math"))
author=doc.createElement("author")
author.appendChild(doc.createTextNode(u"张三"))
pageNumber=doc.createElement("pageNumber")
pageNumber.appendChild(doc.createTextNode("561"))
book.appendChild(title)
book.appendChild(author)
book.appendChild(pageNumber)
root.appendChild(book)
doc.appendChild(root)
#添加第二本书:
book=doc.createElement("book")
book.setAttribute("category","python")
title=doc.createElement("title")
title.appendChild(doc.createTextNode("learning python"))
author=doc.createElement("author")
author.appendChild(doc.createTextNode(u"李四"))
pageNumber=doc.createElement("pageNumber")
pageNumber.appendChild(doc.createTextNode("600"))
book.appendChild(title)
book.appendChild(author)
book.appendChild(pageNumber)
root.appendChild(book)
print doc.toxml()
#写入文件保存
fp=codecs.open(r"e:\abc\book.xml","w","utf-8")
doc.writexml(fp,indent="",addindent="\t",newl="\n",encoding="utf-8") fp.close()

2.解析XML文件:
from xml.dom.minidom import parse
DOMTree=parse(r"e:\abc\book.xml") #解析成内存中的一棵文档树
print type(DOMTree)
#print u"xml文档内容:\n%s"%DOMTree.toxml()
booklist=DOMTree.documentElement #获取文档树的根 print booklist
#判断存在某属性并获取属性值
if booklist.hasAttribute("type"):
print u"booklist元素存在type属性"
print u"booklist元素的type属性值是:%s"%booklist.getAttribute("type")
else:
print u"booklist元素不存在type属性"
#获取节点元素
books=booklist.getElementsByTagName("book")
print type(books)
print books
print u"book节点的个数:",len(books)
print "*"*20
for book in books:
if book.hasChildNodes():
#获取所有子节点对象
print book.childNodes
#获取节点文本值
title=book.getElementsByTagName("title")
print "title is:",title[0].childNodes[0].data
else:
print u"不存在叶子节点"
创建xml文件、解析xml文件的更多相关文章
- python 解析XML python模块xml.dom解析xml实例代码
分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...
- dom4j组装xml 以及解析xml
dom4j组装xml 以及解析xml: 1.下载dom4j的jar包,地址:https://dom4j.github.io/ 2.java代码: package test; import java.i ...
- 7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml
数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDef ...
- Python—使用xml.sax解析xml文件
什么是sax? SAX是一种基于事件驱动的API. 利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器. 解析器负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件; 而事件处 ...
- android基础篇------------java基础(11)(文件解析xml and Json )
一:xml文件解析 首先看一下:我们要解析的内容: <?xml version="1.0" encoding="gbk" ?> - <book ...
- Dom生成Xml和解析Xml
xml这样的文件格式在非常多时候都是非常适合我们用来存取数据的,所以利用程序来生成xml文件和解析xml文件就显得比較重要了.在dom中是把每个元素都看做是一个节点Node的,全部页面上的属性.元素等 ...
- C#仪器数据文件解析-RTF文件
RTF格式文件大家并不陌生,但RTF文件的编码.解码却很难,因为RTF文件是富文本格式的,即文件中除了包含文本内容,还包含文本的格式信息,而这些信息并没有像后来的docx等采用XML来隔离格式和内容, ...
- C#仪器数据文件解析-Excel文件(xls、xlsx)
不少仪器工作站可以将数据导出为Excel文件,包括97-2003版本的xls文件和2007+的xlsx文件. 采集Excel文件相比采集pdf文件更容易.程序更健壮,毕竟Excel中数据有明确的行.列 ...
- C#仪器数据文件解析-Word文件(doc、docx)
不少仪器数据报告输出为Word格式文件,同Excel文件,Word文件doc和docx的存储格式是不同的,相应的解析Word文件的方式也类似,主要有以下方式: 1.通过MS Word应用程序的DCOM ...
- Python使用xml.dom解析xml
在菜鸟教程上找了个关于电影信息的xml类型的文档,用python内置的xml.dom来解析提取一下信息. 先复习一下xml概念: XML 指可扩展标记语言(EXtensible Markup Lang ...
随机推荐
- DDD工作流持久化(十六)
找到对应的sql文件执行sql语句 产生如下的表: 添加引用: 添加命名空间: using System.Activities.DurableInstancing; using System.Runt ...
- 挂在光盘出现写保护mount: block device /dev/sr0 is write-protected, mounting read-only
https://blog.csdn.net/yueludanfeng/article/details/60339688
- 使用JDBC连接ElasticSearch6.3(ElasticSearch SQL JDBC)
使用JDBC连接ElasticSearch6.3(ElasticSearch SQL JDBC) https://blog.csdn.net/scgaliguodong123_/article/det ...
- 去除ArrayList集合中的重复自定义对象元素
要求去除ArrayList集合中重复的Student的对象(什么叫重复,所有属性值都相同叫做重复). 思路: 1.创建一个新集合 2.遍历旧集合中的每一个元素,去新集合中找这个元素,如果这个元素不存在 ...
- centos 6 切换base源
切换为阿里云源: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup && wg ...
- Codeforces Gym100543L Outer space invaders 区间dp 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/CF-Gym100543L.html 题目传送门 - CF-Gym100543L 题意 $T$ 组数据. 有 $n ...
- mybatis相关知识
@param解释为映射mapper.xml中的传参 mybatis中批量新增时用foreach循环,注意其中的collection属性,有list,数组 注意foreach中sql函数的写法,orac ...
- TCP、UDP和HTTP区别
http:是用于www浏览的一个协议.tcp:是机器之间建立连接用的到的一个协议. 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层.在网络层有IP协议.ICMP协议.ARP协议.R ...
- Django中的Request和Response
接触Django这么久了,从来没有好好学习关于Django中的Request和Response对象.借着文件上传下载的相关工作,现在总结一下也不错. 当一个页面请求过来,Django会自动创建一个Re ...
- 最佳linux文件WINDOWS上传下载方法
通常,利用SSH管理远程Linux服务器时,经常需要与本地交互文件.当然,我们可以利用FTP方式,比如通过Filezilla客户端软件.不过直接使用SSH软件(SecureCRT.Xshell)自带的 ...