python標準庫模組五 Xml模組學習

2022-03-24 00:45:36 字數 2115 閱讀 3967

xml本身是一種格式規範,是一種包含了資料以及資料說明的文字格式規範。在json沒有興起之前各行各業進行資料交換的時候用的就是這個。目前在金融行業也在廣泛在運用。

舉個簡單的例子,xml是一種標記性語言,格式類似於資料,這樣乙個封閉起來是乙個整體

以上就是xml內部的樣子,可以將其想象成一棵樹,如下圖所示

一般訪問xml檔案的時候,先得到根節點,然後再遍歷根節點,得到根節點的子節點相關資訊

#

得到樹根

root =tree.getroot()

for element in

root:

print(element.tag) #

獲取標籤名

print(element.attrib) #

獲取標籤屬性

print(element.text) #

獲取標籤值

查詢操作使用.iter("標籤名")來做,這個函式會找到符合標籤名的標籤繼承到乙個可迭代的序類中。這個是從根節點開始搜尋整棵樹

#

獲取所有"rank"標籤的text

for element in root.iter("

rank"):

print(element.text) #

獲取標籤值

查詢使用.findall("標籤名"),這個函式會找到符合標籤名的所有標籤整合到乙個可迭代的序列中。這個是只能找當前這一級的

#

獲取所有根節點下的名字為country的標籤。只能在自己的一級找

for element in root.findall("

country"):

print(element.tag) #

獲取標籤名

查詢使用.find("標籤名"),這個函式會找到符合標籤名的第乙個標籤。然後返回該標籤 的子標籤的序列

#

找到root節點下標籤名為country的標籤,並返回其子標籤組成的序列

for element in root.find("

country"):

print(element.tag) #

獲取標籤名

這裡分為修改標籤的屬性和標籤的內容

import

xml.etree.elementtree as et

#得到xml樹

tree = et.parse("

xml_lesson")

#得到樹根

root =tree.getroot()

#找到root節點下標籤名為country的標籤,並返回其子標籤組成的序列

node = root.find("

country")

node.set(

"name

","china")

node = node.find("

rank")

node.text = "1"

#寫回原檔案

主要思想是先建立節點,再把節點打包成樹

import

xml.etree.elementtree as et

#建立根節點

root = et.element("

data")

#建立子節點,並新增屬性

age = et.subelement(root,"

age"

)age.attrib =

age.text = "23"

#建立elementtree物件,寫檔案

tree =et.elementtree(root)

tree.write(

"test.xml

")

Python基礎 五 模組 標準庫

1.模組匯入 兩種 import module namefrom module name import fun name 第一種 import urllib defmain urllib.request.request url 需要通過 模組名 獲取 第二種 from urllib import r...

Python 標準庫 xml 詳解

對於簡單的 xml 解析處理,可以使用標準庫xml,相對於第三方庫lxml,xml無需額外安裝,但xml是用 python 實現的,效能不如lxml xml 的解析功能主要由xml.etree.elementtree模組完成,其中包含兩個類,elementtree用於表示整個 xml 文件,而ele...

Python標準庫sys模組

第 一遍還打錯了幾個字元,而且不知道sys.argv和startswith 是啥意思,谷歌了一下終於明白了。sys.argv用法參 考 startswith 用法參考 筆記 sys.argv 指的是命令列引數,比如在cmd命令列輸入 cat.py help 那麼sys.argv 0 就代表 help...