zoukankan      html  css  js  c++  java
  • python xml练习:从database.xml文件取databaselist的ip、name、passwd,写入列表

    xml:

    <?xml version='1.1' encoding='utf-8'?>
    <!--this is a test about xml-->
    <databaselist type='oracle'>
        <database userArea='suzhou'>
            <ip>10.192.128.88</ip>
            <name>'xiasam'</name>
            <passwd>!QAZ2wsx</passwd>
        </database>
        <database userArea='BeiJing'>
            <ip>10.192.128.89</ip>
            <name>'wu li'</name>
            <passwd>3edc$RFV</passwd>
        </database>
    </databaselist>

    #coding=utf-8

    def getInfo(xml_file):
        from xml.dom.minidom import parse
        DOMTree=parse(xml_file)
        databaselist=DOMTree.documentElement
        #print databaselist
        result=[]
        databaselists=databaselist.getElementsByTagName('database')
        for i in databaselists:#
            for j in i.childNodes[1:6:2]:
                print j.tagName,j.childNodes[0].data
                result.append("%s : %s"%(j.tagName,j.childNodes[0].data))
        return result


    print getInfo(r"d:\database_test.xml")

    c:Python27Scripts>python task_test.py
    ip 10.192.128.88
    name 'xiasam'
    passwd !QAZ2wsx
    ip 10.192.128.89
    name 'wu li'
    passwd 3edc$RFV
    [u'ip : 10.192.128.88', u"name : 'xiasam'", u'passwd : !QAZ2wsx', u'ip : 10.192.128.89', u"name : 'wu li'", u'passwd : 3edc$RFV']

    下边是调试代码(注释)

    #coding=utf-8

    def getInfo(xml_file):
        from xml.dom.minidom import parse
        DOMTree=parse(xml_file)
        databaselist=DOMTree.documentElement
        #print databaselist
        result=[]
        databaselists=databaselist.getElementsByTagName('database')
        for i in databaselists:
            print "i:",i
            for j in i.childNodes[1:6:2]:
                print "j:",j
                print "j.tagName:",j.tagName,"j.childNodes[0].data:",j.childNodes[0].data
                result.append("%s : %s"%(j.tagName,j.childNodes[0].data))
        return result

    print getInfo(r"d:\database_test.xml")

    c:Python27Scripts>python task_test.py
    i: <DOM Element: database at 0x2a06648>
    j: <DOM Element: ip at 0x2a06760>
    j.tagName: ip j.childNodes[0].data: 10.192.128.88
    j: <DOM Element: name at 0x2a06800>
    j.tagName: name j.childNodes[0].data: 'xiasam'
    j: <DOM Element: passwd at 0x2a068a0>
    j.tagName: passwd j.childNodes[0].data: !QAZ2wsx
    i: <DOM Element: database at 0x2a06968>
    j: <DOM Element: ip at 0x2a06a80>
    j.tagName: ip j.childNodes[0].data: 10.192.128.89
    j: <DOM Element: name at 0x2a06b20>
    j.tagName: name j.childNodes[0].data: 'wu li'
    j: <DOM Element: passwd at 0x2a06bc0>
    j.tagName: passwd j.childNodes[0].data: 3edc$RFV
    [u'ip : 10.192.128.88', u"name : 'xiasam'", u'passwd : !QAZ2wsx', u'ip : 10.192.128.89', u"name : 'wu li'", u'passwd : 3edc$RFV']

  • 相关阅读:
    Effective C# 学习笔记(三十五) 了解PLINQ如何实现并行算法
    Effective C# 学习笔记(三十八)理解Dynamic的得与失
    转单例的分析
    获取系统当前音量 和 监听系统音量 ios
    (转) iphone开发资源汇总
    xcode show line numbers
    为了编程方便的效率宏定义的一些代码
    ios6下cocos2d & ipad 调用摄像头报错问题 (在竖屏情况下调用Camera 会导致转屏)
    转KVC
    不记住的
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/8822056.html
Copyright © 2011-2022 走看看