Python實現對於xml檔案中資料的增刪改查

2021-10-13 21:39:17 字數 1957 閱讀 7801

# -*- coding: utf-8 -*-

import ete.cryptolib

import ete.initete

from xml.etree import elementtree as et

#****************1 載入檔案

tree = et.parse('./carddata.xml')

#****************2 獲得根結點

root=tree.getroot()

#****************3 按照路徑尋找某個結點

#根據路徑尋找某個結點的值

aid=root.find('gpdata/currentaid')

print(aid.text)

#直接尋找某個結點的值

aidtext=root.findtext('gpdata/currentaid')

print("aidtext+ "+aidtext)

#更改某個結點的值

aid.text="a0000003330101"

#****************4 獲得某個結點的子節點的資訊

gp_node=root.find('gpdata')

#返回的符合條件的所有結點的集合(陣列)

childens=gp_node.iter()

for child in childens:

print(child.text)

print(child.tail)

#****************5 對結點屬性的訪問

aidlist=root.find('gpdata/aidlist')

#根結點下的所有子節點

#訪問屬性 響應的可以根據屬性查詢值

for child in childens:

items=child.attrib

#判斷某個結點的某個屬性是不是存在

if items.get('number'):

mynumber=items["number"]

print("my number is "+mynumber)

mystate=items["state"]

print("my mystate is "+mystate)

#****************5 在指定的目錄下增加乙個,複製原有結點

#複製原有結點到指定結點

#****************6 在指定的目錄下增加乙個,建立乙個新的結點並新增

#構建新的幾點並新增

#例項化乙個結點

employee=et.element('employee',) #element(tag, attrib={}, **extra)

employee.text='hello world'

#這一行不可以少要不然會很難看,結點與它的父節點之間不會構成層級關係

employee.tail="\n"

#在指定位置增加

root.insert(1,employee)

tester=et.element('tester',) #element(tag, attrib={}, **extra)

tester.text='hello tester'

#這一行不可以少要不然會很難看,結點與它的父節點之間不會構成層級關係

tester.tail="\n"

#****************7 儲存檔案

tree.write('carddata.xml',encoding = "utf-8",xml_declaration=true)

#****************8 刪除幾點

root.remove(employee)

root.remove(tester)

tree.write('carddata2.xml',encoding = "utf-8",xml_declaration=true)

Python實現解析XML檔案

專案名收件人 負責人上面是測試的xml檔案。針對上述的格式xml,可以利用如下解析方法。coding utf 8 author yangxin ryan import xml.dom.minidom class xmlparser object def sql xml parser self,xml...

Python實現靈活的xml檔案解析

由於工作需要,需求是把任意xml檔案的所有element 元素 解析成乙個字典序列返回。這裡使用python自帶的xml解析庫,非常好用,效率也不錯。import os import xml.etree.elementtree as et def parser any xml filename if...

python實現xml和csv檔案轉化

下面是轉抄的。稍微改了下,用在匯出的testcase xml檔案轉化成客戶要的csv檔案 coding utf 8 import sys import importlib importlib.reload sys import csv from xml.etree.elementtree impor...