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:\Python27\Scripts>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:\Python27\Scripts>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']

python xml练习:从database.xml文件取databaselist的ip、name、passwd,写入列表的更多相关文章

  1. python中用ElementTree.iterparse()读取xml文件中的多层节点

    我在使用Python解析比较大型的xml文件时,为了提高效率,决定使用iterparse()方法,但是发现根据网上的例子:每次if event == 'end':之后elem.clear()或者是每次 ...

  2. Python—使用xm.dom解析xml文件

    什么是DOM? 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口. 一个 DOM 的解析器在解析一个 XML 文档时,一次性读 ...

  3. 【python小随笔】python 解析xml数据的新手大坑>>抓取多重标签,遍历各标签的数据

    xml文档: <GetMatchingProductResult ASIN="B071LF9R6G" status="Success">...< ...

  4. Python中xml.etree.ElementTree读写xml文件实例

    import osimport xml.etree.ElementTree as ET'''Python 标准库中,提供了6种可以用于处理XML的包,本文举实例说明第6种1.xml.dom2.xml. ...

  5. python进阶(十七)xml(下)

    1.XML简介 xml用到的地方:tomcat配置文件 1) xml 指可扩展标记语言(Extensible Markup Language) 2) xml 被设计用于结构化.存储和传输数据 3) x ...

  6. 【python】-- json & pickle、xml、requests、hashlib、shelve、shutil、configparser、subprocess

    json & pickle Python中用于序列化的两个模块 json     用于[字符串]和 [python基本数据类型] 间进行转换 pickle   用于[python特有的类型] ...

  7. Python中使用ElementTree解析xml

    在Python中,ElementTree是我们常用的一个解析XML的模块 1.导入ElementTree模块 from xml.etree import ElementTree as ET 2.初始化 ...

  8. 小白的Python之路 day5 模块XML特点和用法

    模块XML的特点和用法 一.简介 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今 ...

  9. python xml.dom模块解析xml

    1. 什么是xml?有何特征? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 例子:del.xml <?xml version=&q ...

随机推荐

  1. iOS - 网址、链接、网页地址、下载链接等正则表达式匹配(解决url包含中文不能编码的问题)

    DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母.标号中除连字符(-)外不能使用其他的标点符号.级别最低的域名写在最左边,而级别最高的域名写在最右边.由多 ...

  2. Java除法和js

    java 除 向下取整 js 保留小数

  3. FZU2110 Star【计算几何】

    Overpower often go to the playground with classmates. They play and chat on the playground. One day, ...

  4. 【转】MVC中的扩展点

    原文地址:http://www.cnblogs.com/xfrog/tag/MVC/      MVC中的扩展点(十)辅助方法   MVC中的扩展点(九)验证   MVC中的扩展点(八)模型绑定   ...

  5. Oracle安装部署之linux(redhat/centos)快速安装oracle 11g rac

    安装oracle 11gR2 RAC 一.网络规划及安装虚拟主机 主机名 主机版本 Ip rac1.localdomain Redhat 6.5 RAC节点1 192.168.100.11 rac2. ...

  6. JavaScript之Function 和 Object 的区别和联系

    1.先看一个控制台的输出: instanceof 运算符字面意思是 左边是右边的一个实例吗? 但是这两条输出让人很困惑.Function 是 Object 的实例.Object 也是 Function ...

  7. 开启 NFS 文件系统提升 Vagrant 共享目录的性能

    Vagrant 默认的 VirtualBox 共享目录方式读写性能表现并不好,好在 Vagrant 支持 NFS 文件系统方式的共享,我们可以启用 NFS 提升性能 开启方法 首先要把虚拟机的网络设置 ...

  8. nginx 哈希表数据结构

    1.哈希表ngx_hash_t的优势和特点 哈希表是一种典型的以空间换取时间的数据结构,在没有冲突的情况下,对任意元素的插入.索引.删除的时间复杂度都是O(1).这样优秀的时间复杂度是通过将元素的ke ...

  9. mysql获取下一篇和上一篇文章的ID

    mysql获取上一篇和下一篇文章的ID只要在当前页面读取上一个和下一个的ID就可以了.假设当前ID为10:搜索上一个的ID:select  id  from table where id<10 ...

  10. LeetCode Top100 Liked Questions

    1. TwoSum https://www.cnblogs.com/zhacai/p/10429120.html  easy 2. Add Two Numbers https://www.cnblog ...