• 创建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:abcook.xml","w","utf-8")

    doc.writexml(fp,indent="",addindent=" ",newl=" ",encoding="utf-8") fp.close()

    2.解析XML文件:

    from xml.dom.minidom import parse

    DOMTree=parse(r"e:abcook.xml")  #解析成内存中的一棵文档树

    print type(DOMTree)

    #print u"xml文档内容: %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"不存在叶子节点"

  • 相关阅读:
    ASP.NET-FineUI开发实践-9(四)
    ASP.NET-FineUI开发实践-9(三)
    ASP.NET-FineUI开发实践-9(二)
    ASP.NET-FineUI开发实践-9
    ASP.NET-FineUI开发实践-8(二)
    ASP.NET-FineUI开发实践-8
    ASP.NET-FineUI开发实践-7
    ASP.NET-FineUI开发实践-6(三)
    ASP.NET-FineUI开发实践-6(二)
    ASP.NET-FineUI开发实践-6
  • 原文地址:https://www.cnblogs.com/reyinever/p/8654719.html
Copyright © 2020-2023  润新知