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

 

转载于:https://www.cnblogs.com/reyinever/p/8654719.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值