我的.xml檔案如下:
通過如下**模板,可實現對.xml檔案的資訊快捷讀取:
# 導入庫檔案
from xml.etree.elementtree import elementtree, element
# 指定.xml檔案位址
xml_path = "/users/megvii/desktop/retail/001.xml"
defmain
(): tree = elementtree()
tree.parse(xml_path)
# 對一級text的獲取
folder = tree.find('folder').text # milkpowder
filename = tree.find('filename').text # image005.png
path = tree.find('path').text # ../../image005.png
size = tree.find('size')
size_width = size.find('width').text # 1440
size_height = size.find('height').text # 1080
size_depth = size.find('depth').text # 3
segmented = tree.find('segmented').text # 0
# 對所有object的獲取
objs = tree.findall('object')
# 對每個子object分別進行text獲取
for idx in range(len(objs)):
tag = objs[idx].find('name').text
x1 = int(round(float(objs[idx].find('bndbox').find('xmin').text)))
y1 = int(round(float(objs[idx].find('bndbox').find('ymin').text)))
x2 = int(round(float(objs[idx].find('bndbox').find('xmax').text)))
y2 = int(round(float(objs[idx].find('bndbox').find('ymax').text)))
bbox = [x1, y1, x2, y2]
if __name__ == "__main__":
main()
# 導入庫檔案
from xml.etree.elementtree import elementtree, element
# 指定.xml檔案位址
xml_path = "/users/megvii/desktop/001.xml"
defmain
(): tree = elementtree()
tree.parse(xml_path)
objs = tree.findall('object')
# 修改 指定屬性 的 文字
objs[0].find('name').text = "nanjing"
# 將新的tree覆蓋寫入原xml檔案
tree.write(xml_path, encoding="utf-8")
if __name__ == "__main__":
main()
成功將第乙個「object」項的」name」屬性的文字改為了「nanjing」:
.xml檔案資訊的存放類似於多級的字典(dict)。
因此,通過xml.etree.elementtree庫對.xml檔案資訊的讀取,其實就是在分級text下對指定key進行的value讀取。
[1] python xml屬性/節點/文字的增刪改[xml.etree.elementtree]
PythonXML檔案解析
sax是一種基於事件驅動的api。利用sax解析xml文件牽涉到兩個部分 解析器和事件處理器。解析器負責讀取xml文件,並向事件處理器傳送事件,如元素開始跟元素結束事件 而事件處理器則負責對事件作出相應,對傳遞的xml資料進行處理。適於處理下面的問題 在python中使用sax方式處理xml要先引入...
python xml解析例子
coding utf 8 created on thu apr 16 23 18 27 2015 author shifeng 功能 解析cdr sample.xml檔案,輸出格式為dnorm接收的格式,並將訓練集的 label 寫入到文件中 xml檔案 見csdn資源共享 import codec...
學習筆記 Python XML解析
xml.sax 菜鳥教程 官網文件 python由xml包 lib xml 提供對xml的支援。python處理xml主要有兩種模型,xml.dom和xml.sax分別定義了兩種處理模型的介面 the xml handling submodules are 手冊 inte ce section pu...