要想理解xml的用法,首先要理解xml結構中每個部分代表的意義:
每個節點的格式以及表示的意義:
text # 每個節點的主要格式# tag 表示這個節點的名字或者交標籤 (只能有乙個)
# attr 表示這個標籤的屬性,可以有多個屬性的值
# text 表示這個標籤的內容是
父節點的tag是: 書店父節點的text是:『\n』
節點的tag為: 紅樓夢
節點的text為: 乙個家族的興衰
從檔案中讀xml :
>>> import xml.etree.elementtree as et
>>> tree= et.parse('/root/info')
>>> root = tree.getroot()
從字串中讀入:
>>> import xml.etree.elementtree as et
>>> root = et.fromsring(str_xml) # str_xml 表示字串
字串xml寫入到檔案
>>> import xml.etree.elementtree as et
>>> root = et.fromsring(str_xml) # str_xml 表示xml字串
>>> tree = et.elementtree(root)
>>> tree.write(path, encoding='utf-8',xml_declaration=true) # path 表示輸出的檔案路徑
從檔案中讀入,再寫入檔案中:path1 和 path2 可以不同
>>> import xml.etree.elementtree as etparse
>>> tree = et.parse(path) # path1 讀入的路徑
>>> root = tree.getroot() # 獲取根節點
>>> tree.write(path2, encoding='utf-8',xml_declaration=true) # path2 表示輸出的檔案路徑
建立乙個節點:
>>> from lxml.etree import element
>>> node = element('紅樓夢') # tag 表示要建立的tag
>>> node.set('**', '20') # 為tag 新增屬性
>>> node.text('乙個家族的興衰') # 為tag新增text
# 可以換一種方式新增屬性
>>> from lxml.etree import element
>>> node = element('紅樓夢' ) # tag 表示要建立的tag
>>> node.text('乙個家族的興衰') # 為tag新增text
把建立的node新增到xml,
# 從檔案中讀入xml,新增後在寫入xml
>>> import xml.etree.elementtree as etparse
>>> from lxml.etree import element
# 建立節點node
>>> node = element('紅樓夢' ) # tag 表示要建立的tag
>>> node.text('乙個家族的興衰') # 為tag新增text
# 從檔案中讀取xml
>>> tree = et.parse(path) # path1 讀入的路徑
>>> root = tree.getroot()
# 為根節點增加乙個子節點
# 或者換一種方式
>>>root.insert(1,node) # 1表示要插入的位置
# 再寫入到檔案
>>> tree.write(path2, encoding='utf-8',xml_declaration=true) # path2 表示輸出的檔案路徑
查詢目前還沒有什麼好的方法,還是便利整個xml檔案
# 從檔案中讀入xml,新增後在寫入xml
>>> import xml.etree.elementtree as etparse
>>> from lxml.etree import element
# 從檔案中讀取xml
>>> tree = et.parse(path) # path1 讀入的路徑
>>> root = tree.getroot()
# 查詢root下有幾個子節點
>>> node_list = root.findall('*') # 返回乙個子節點的列表,然後遍歷這個list,根據體條件查詢
.....
.....
# 再寫入到檔案
>>> tree.write(path2, encoding='utf-8',xml_declaration=true) # path2 表示輸出的檔案路徑
查詢的可以參考:
可以根據上邊的方法查詢到要修改的node,ps: 把數的**改為30元
# 獲取屬性
>>> node.get('**')
# 修改屬性
>>> node.set('**', 30)
刪除的話要注意,必須是刪除刪除父節點的子節點,不能跨節點刪除
# 刪除的命令
>>> root.remove(node)
# 其中node必須是root的子節點,或者root必須是node的父節點
# 否則就會刪除失敗
可以看乙個例子
<?xml version="1.0" encoding="utf-8"?>
張三18
89 李四
1981
王五1792
根節點只能刪除 tag是student的節點, tag是student的只能刪除節點tag是 name、 age、 score的節點
增刪改Xml檔案
using system using system.collections using system.componentmodel using system.data using system.drawing using system.web using system.web.sessionstat...
C 本地xml檔案進行增刪改查
專案新增xml檔案 facexml.xml,並複製到輸出目錄 facexml.xml facebyte 專案新增xmlhelper幫助類 using system using system.collections.generic using system.linq using system.text...
使用python操作XML增刪改查
官方文件 import xml.etree.elementtree as et可以從xml檔案 字串中解析 新建乙個xml檔案 張三18 89 李四 1981 王五1792 tree et.parse students.xml root tree.getroot root et.fromstring...