Python學習篇之 解析XML

2021-08-08 15:30:26 字數 2019 閱讀 4204

一、xml格式及使用

<?xml version="1.0" encoding="utf-8"?>    /*指明該xml的版本、編碼方式,在xml文件的處理中都是使用utf-8編碼進行的,因此,如果你不寫明encoding的話,都是認為檔案是utf-8編碼的*/4

python

測試zope

xml資訊體是由樹狀元素組成。每個xml文件都有乙個文件元素,也就是樹的根元素,所有其它的元素和內容都包含在根元素中。

二、python處理xml的方法

python中有三種方式處理xml。這裡選擇的是xml.dom.*

檔案物件模型(document object model,簡稱dom),是w3c組織推薦的處理可擴充套件置標語言的標準程式設計介面。乙個 dom 的解析器在解析乙個xml文件時,一次性讀取整個文件,把文件中所有元素儲存在記憶體中的乙個樹結構裡,之後你可以利用dom 提供的不同的函式來讀取或修改文件的內容和結構,也可以把修改過的內容寫入xml檔案。python中用xml.dom.minidom來解析xml檔案

①讀取

# 獲取路徑

path_file = os.path.abspath(os.path.abspath('..'))

logging.config.fileconfig("../config/logger.config")

def number(location):

""":param location:

:return:

"""dom = xml.dom.minidom.parse(path_file + '/config/numberinfo.xml')

root = dom.documentelement

value = root.getelementsbytagname('valuenum')[location].getattribute('id')

logging.info(u'獲得的屬性值為: %s' % value)

return value

②寫入讀取xml中的id,並id進行+2處理,然後存入xml

# 獲取路徑

path_file = os.path.abspath(os.path.abspath('..'))

logging.config.fileconfig("../config/logger.config")

def usernamechange(location):

""":param location:

:return:

"""dom = xml.dom.minidom.parse(path_file + '/config/numberinfo.xml')

root = dom.documentelement

value = root.getelementsbytagname('valuenum')[location].getattribute('id')

domattr = root.getelementsbytagname('valuenum')[location]

num = numlist(value)

# logging.info(u'獲得的屬性值為: %s' % num)

domattr.setattribute('id', num)

logging.info(u'修改id獲得的屬性值為: %s' % domattr.getattribute('id'))

f = file(path_file + '/config/logininfo.xml', 'w')

writer = codecs.lookup('utf-8')[3](f)

dom.writexml(writer, encoding='utf-8')

return num

三、遇到的問題

中間處理xml資料寫入時,遇到處理後的資料無法寫入的情況,後經排查後,是因為xml調取路徑是寫入到方法內部了。因此每次調取方法都重新重置了xml。從而導致無法寫入。

把xml調取路徑的內容寫到公共部分,就可以解決該問題

python之xml檔案解析

xml檔案內容如下 4maxid username pytest passwd 123456 pythoncaption 4 測試caption item login 2 zopecaption item catalog import xml.dom.minidom 開啟xml文件 dom xml....

XML解析之 MSXML應用總結 概念篇

一 msxml版本說明 目前共有四種msxml版本,分別為msxml3 msxml4 msxml5和msxml6。由於在微軟的windows系統中,msxml主要是用來支援瀏覽器和office的,因此這些版本多與不同瀏覽器版本及office版本相關。微軟推出ie6時帶的是msxml3,因此一般在xp...

xml解析學習

1 xml是標記型文件 2 xml的解析方式 技術 dom和sax 3 js使用dom解析標記型文件,dom解析。根據html的層級結構,在記憶體中分配乙個樹形結構,把html的標籤 屬性 文字都封裝成物件 document物件 element物件 屬性物件 文字物件 node節點物件 4 sax方...