创建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"不存在叶子节点"

 

posted @ 2018-03-26 23:04  reyinever  阅读(307)  评论(0)    收藏  举报