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文件的更多相关文章

  1. python 解析XML python模块xml.dom解析xml实例代码

    分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...

  2. dom4j组装xml 以及解析xml

    dom4j组装xml 以及解析xml: 1.下载dom4j的jar包,地址:https://dom4j.github.io/ 2.java代码: package test; import java.i ...

  3. 7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml

     数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDef ...

  4. Python—使用xml.sax解析xml文件

    什么是sax? SAX是一种基于事件驱动的API. 利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器. 解析器负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件; 而事件处 ...

  5. android基础篇------------java基础(11)(文件解析xml and Json )

    一:xml文件解析 首先看一下:我们要解析的内容: <?xml version="1.0" encoding="gbk" ?> - <book ...

  6. Dom生成Xml和解析Xml

    xml这样的文件格式在非常多时候都是非常适合我们用来存取数据的,所以利用程序来生成xml文件和解析xml文件就显得比較重要了.在dom中是把每个元素都看做是一个节点Node的,全部页面上的属性.元素等 ...

  7. C#仪器数据文件解析-RTF文件

    RTF格式文件大家并不陌生,但RTF文件的编码.解码却很难,因为RTF文件是富文本格式的,即文件中除了包含文本内容,还包含文本的格式信息,而这些信息并没有像后来的docx等采用XML来隔离格式和内容, ...

  8. C#仪器数据文件解析-Excel文件(xls、xlsx)

    不少仪器工作站可以将数据导出为Excel文件,包括97-2003版本的xls文件和2007+的xlsx文件. 采集Excel文件相比采集pdf文件更容易.程序更健壮,毕竟Excel中数据有明确的行.列 ...

  9. C#仪器数据文件解析-Word文件(doc、docx)

    不少仪器数据报告输出为Word格式文件,同Excel文件,Word文件doc和docx的存储格式是不同的,相应的解析Word文件的方式也类似,主要有以下方式: 1.通过MS Word应用程序的DCOM ...

  10. Python使用xml.dom解析xml

    在菜鸟教程上找了个关于电影信息的xml类型的文档,用python内置的xml.dom来解析提取一下信息. 先复习一下xml概念: XML 指可扩展标记语言(EXtensible Markup Lang ...

随机推荐

  1. json2csharp & json 格式化

    json2csharp: http://json2csharp.com/ bejson: http://www.bejson.com/

  2. Nodejs通过账号密码连接MongoDB数据库

    转自https://blog.csdn.net/szu_lzz/article/details/77435804#commentBox 1.创建管理员 首先开启Mongo服务,然后切换admin数据库 ...

  3. Note for "Some Remarks on Writing Mathematical Proofs"

    John M. Lee is a famous mathematician, who bears the reputation of writing the classical book " ...

  4. jQuery和Zepto冲突问题【解决】

    特殊操作下,项目中同时引入这两个文件时,往往会有些冲突,应该加一句代码避免冲突 <script src="~/js/jquery-2.1.4.js"></scri ...

  5. Codeforces Gym100543B 计算几何 凸包 线段树 二分/三分 卡常

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF-Gym100543B.html 题目传送门 - CF-Gym100543B 题意 给定一个折线图,对于每一条 ...

  6. tomcat多端口配置

    <?xml version="1.0" encoding="UTF-8"?> <Server port="8005" sh ...

  7. HDFS-HA高可用 | Yarn-HA

    HDFS-HA HA(High Available),即高可用(7*24小时不中断服务) 单点故障即有一台机器挂了导致全部都挂了:HA就是解决单点故障,就是针对NameNode: 主Active:读写 ...

  8. Practice| 流程控制

    若整数a除以非零整数b,商为整数,且余数为零, 我们就说a能被b整除(或说b能整除a),a为被除数,b为除数,即b|a("|"是整除符号),读作"b整除a"或& ...

  9. The path is not a valid path to the xxx kernel header

    在安装vmtools时无意中出现了这样的问题 1.gcc错误 Searching for GCC- The path "" is not valid path to the gcc ...

  10. c++基本数据类型及其取值范围

    #include<iostream> #include<string> #include <limits> using namespace std; int mai ...