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. gitblit删除版本库

    Git客户端不提供删除远程仓库的方法,gitblit服务器网页也不支持删除版本仓库.若要强制删除,Windows下可以: 先在任务管理器中停止gitblit进程,然后将gitblit版本库文件夹中将版 ...

  2. Spark核心RDD、什么是RDD、RDD的属性、创建RDD、RDD的依赖以及缓存、

    1:什么是Spark的RDD??? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行 ...

  3. 记录一次因代理Controller产生的404问题

    spring 3.2.4 为了给每一个controller配置一个拦截器链 import com.google.common.collect.Lists; import org.aopalliance ...

  4. Sql语句拼接(EXEC和sp_executesql的区别)

    1.前言 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最 ...

  5. WPF多屏最大化

    如果计算机存在多个显示器,这时设置wpf窗口为最大化,窗口只能在主显示器中实现最大化,如果想要实现窗口拉伸至多屏,需要获取所有显示器分辨率之和.这时用到了System.Windows.SystemPa ...

  6. JSP基础知识➣获取参数和过滤器(四)

    JSP表单提交和参数获取 JSP表单提交的两种方式:post和get,通过这两种方式提交的参数到后台,获取参数的值主要由request来处理,获取值的方式有以下几种: getParameter():  ...

  7. Docker Client (another java docker client api)

    前一篇提到了docker-java,这里介绍另一个docker client 库,Docker Client 版本兼容 兼容17.03.1~ce - 17.12.1~ce (点 [here][1]查看 ...

  8. 没有IDE的日子

    没有QT Creator,没有VS2008,没有Eclipse,也没有KDevelop,忘掉一切IDE. 好吧,现在我只有Vim了,可我跟Vim不熟. Vim魅力四射,光芒万丈,高高在上,她就是传说中 ...

  9. Codeforces 653F Paper task SA

    Paper task 如果不要求本质不同直接st表二分找出最右端, 然后计数就好了. 要求本质不同, 先求个sa, 然后用lcp求本质不同就好啦. #include<bits/stdc++.h& ...

  10. js+jquery手写弹出提示框

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...