XML 檔案解析

2021-09-26 01:23:06 字數 1443 閱讀 2934

xml檔案如下:

text,source

xml,sgml

import xml.etree.celementtree  as cet

etree = cet.elementtree(file= './datas/sourcefile/test_ceshi.xml')

# 獲取根節點

root = etree.getroot()

print(etree) # 物件

# 獲取根節點的標籤與屬性值

print(root.tag,root.attrib)

# 獲取根節點的子節點

for child_point in root:

print(child_point,child_point.tag,child_point.text.strip())

# 根據索引 切片

print(root[0].tag, root[0].text.strip())

print(root[0:3]) # 物件支援切片

# 查詢元素

# element物件有乙個iter方法,可以對某個元素物件之下所有的子元素進行深度優先遍歷(dfs)。elementtree物件

# 同樣也有這個方法。下面是查詢xml文件中所有元素的最簡單方法:

print('以下為查詢元素:')

for elem in etree.iter():

print(elem.tag,elem.text.strip())

print('根據標籤查詢元素:')

for elem in etree.iter(tag='branch'):

print(elem.tag, elem.text.strip())

# 使用xpath查詢感興趣的元素,更加方便。element物件中有一些find方法可以接受xpath路徑作為引數,find方法會返

# 回第乙個匹配的子元素,findall以列表的形式返回所有匹配的子元素,

# iterfind則返回乙個所有匹配元素的迭代器(iterator)。elementtree物件也具備這些方法,相應地它的查詢是從根

# 節點開始的。

print('下面是乙個使用xpath查詢元素的示例:')

for elem in etree.iterfind('doc/branch/sub-branch'):

print(elem.tag, elem.attrib)

print('上面的**返回了branch元素之下所有tag為sub - branch的元素。接下來查詢所有具備某個name屬性的branch元素:')

for elem in etree.iterfind('branch[@name="release01"]'):

print(elem.tag, elem.attrib)

參考文章: 

建立xml檔案 解析xml檔案

import codecs import xml.dom.minidom doc xml.dom.minidom.document print doc root doc.createelement booklist print u 新增的xml標籤為 root.tagname root.setatt...

解析XML檔案

sax解析xml 得到saxparse ctory saxparse ctory saxparse ctory saxparse ctory.newinstance 得到saxparser saxparser saxparser saxparse ctory.newsaxparser 得到xmlre...

XML檔案解析

xml是可擴充套件標記語言,用來傳輸和儲存資料。xml文件必須包含根元素,該元素是所有其他元素的父元素。xml文件中的元素形成了樹形結構。xml有以下特點 建立名稱是 textfile1.txt 的文件,設定屬性 複製到輸出目錄 如果較新則複製 在工程執行時,會自動將該txt檔案複製到bin下面。2...