zoukankan      html  css  js  c++  java
  • selenium-python读取XML文件

    首先这是我们要读取的XML文件

    <?xml version="1.0" encoding="utf-8" ?>
    <info>
    <base>
    <platform>windows</platform>
    <browser>Chorm</browser>
    <url>http://www.baidu.com</url>
    <login username="admin" passwd="1234"/>
    <login username="guest" passwd="2342"/>
    </base>
    <test>
    <province>北京</province>
    <province>上海</province>
    <city>西安</city>
    <city>成都</city>
    </test>
    1.获取标签信息

    首先要导入xml的mindom模块,用来处理xml文件,parse()用于打开XML文件。documentE;ement用于得到XML文件的唯一根元素

    #coding=utf-8
    from xml.dom import minidom

    #打开xml文件
    date = minidom.parse('info.xml')

    #得到文档的对象
    root = date.documentElement

    #打印节点名称
    print root.nodeName
    #打印节点值
    print root.nodeValue
    #打印节点类型
    print root.nodeType
    print root.ELEMENT_NODE
    2.获得任意标签名

    #coding=utf-8
    from xml.dom import minidom

    #打开xml文件
    date = minidom.parse('info.xml')

    #得到文档的对象
    root = date.documentElement

    #获取标签名为browser的一组标签
    tagname = root.getElementsByTagName('browser')
    #打印标签名
    print tagname[0].tagName

    tagname = root.getElementsByTagName('login')
    print tagname[1].tagName

    tagname = root.getElementsByTagName('province')
    print tagname[1].tagName
    3.获得标签的属性值

    #coding=utf-8
    from xml.dom import minidom

    #打开xml文件
    date = minidom.parse('info.xml')

    #得到文档的对象
    root = date.documentElement

    #获取标签名为login的一组标签
    logins = root.getElementsByTagName('login')

    #获取login下第一个username属性值
    username = logins[0].getAttribute("username")
    print username
    #获取login下第一个passwd属性值
    passwd = logins[0].getAttribute("passwd")
    print passwd

    #获取login下第二个username属性值
    username = logins[1].getAttribute("username")
    print username
    #获取login下第二个passwd属性值
    passwd = logins[1].getAttribute("passwd")
    print passwd
    4.获取标签对之间的数据
    #coding=utf-8
    from xml.dom import minidom

    #打开xml文件
    date = minidom.parse('info.xml')

    #得到文档的对象
    root = date.documentElement

    #获取标签名为province的一组标签
    provinces = root.getElementsByTagName('province')
    citys = root.getElementsByTagName('city')

    #获取第二个province标签对的值,firstChild返回被选节点的第一个子节点,data表示获取该节点的数据
    p2 = provinces[1].firstChild.data
    print p2

    #获取第一个city标签对的值
    c1 = citys[0].firstChild.data
    print c1

    #获取第二个city标签对的值
    c2 = citys[1].firstChild.data
    print c2

    python 读取xml文件内容并完成修改

    import os
    import xml.etree.ElementTree as ET


    def changesku(inputpath):
        listdir = os.listdir(inputpath)
        for file in listdir:
            if file.endswith('xml'):
                file = os.path.join(inputpath,file)
                tree = ET.parse(file)
                root = tree.getroot()
                for object1 in root.findall('object'):      #我要修改的元素在object里面,所以需要先找到object
                    for sku in object1.findall('name'):   #查找想要修改的所有同种元素
                        if (sku.text == '005'):                 #‘005’为原始的text
                            sku.text = '008'                     #修改‘name’的标签值
                            tree.write(file,encoding='utf-8')     #写进原始的xml文件,不然修改就无效,‘encoding = “utf - 8”’避免原始xml                                                                                      #中文字符乱码

                        else:
                            pass                                    
            else:
                pass

    if __name__ == '__main__':
        
        inputpath = 'D:\easy\hebing_xml'         #这是xml文件的文件夹的绝对地址
        changesku(inputpath) 

  • 相关阅读:
    Ehcache2 的配置(不使用配置文件)
    约定优于配置
    Eclipse 3.5使用dropins的插件安装方式
    程序开发为什么要使用框架
    关于远程连接MySQL数据库的问题解决
    python使用open经常报错:TypeError: an integer is required的解决方案
    python仿微软记事本
    抓取oschina上面的代码分享python块区下的 标题和对应URL
    单词翻译
    python多线程下载
  • 原文地址:https://www.cnblogs.com/klb561/p/10085126.html
Copyright © 2011-2022 走看看