1. 程式人生 > >selenium-python讀取XML檔案

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)