Python全棧開發 XML與parse對比

2022-07-20 09:03:08 字數 1446 閱讀 3685

#!/usr/bin/env python

# -*- coding;utf-8 -*-

""" et.xml和et.parse的對比

1、返回物件差異:

et.xml:returns an element instance,xml.etree.elementtree.element物件不具有寫的功能

et.parse:返回elementtree物件,xml.etree.elementtree.elementtree物件才具有寫的功能

2、傳入引數差異:

xml(text, parser=none):*text* is a string containing xml data

parse(source, parser=none):*source* is a filename or file object containing xml data

"""from xml.etree import elementtree as et

# 方式一

# 開啟檔案,讀取xml內容

str_xml = open("first.xml").read()

# 將字串解析成xml特殊物件,放入記憶體,root1代表xml的根節點,它是element的物件,沒有可寫功能,不能寫入檔案

root1 = et.xml(str_xml) # 只能解析字串,不能解析檔案,returns an element instance

print(root1, type(root1))

# 錯誤:root1.write("file3.xml") 原因:xml.etree.elementtree.element' object has no attribute 'write'

# root1為xml的根節點,代表xml字串

# 要儲存的話要使用根節點(element的物件)建立elementtree物件

tree1 = et.elementtree(root1) # 返回elementtree物件

print(tree1, type(tree1))

tree1.write("tree1.xml")

# 方式二

# 直接解析xml檔案,tree具有可讀功能,可以使用write方法寫入檔案

tree2 = et.parse("first.xml") # 解析檔案,不能解析字串,返回elementtree物件

# 獲取xml檔案的根節點,return root element of this tree

root2 = tree2.getroot()

# 錯誤:root2.write("file4.xml") 原因:xml.etree.elementtree.element' object has no attribute 'write'

print(root2, type(root2))

tree2.write("tree2.xml")

《Python全棧開發 Python 類與物件》

1.python 是一門物件導向語言,採用語法 class 去建立乙個類 1.資料屬性 2.函式屬性 class chinese 這是乙個中國人的類 類分兩部分 資料屬性部分,方法 函式 部分 這裡是類的資料屬性,每個物件共有的部分 dang 共產黨 init 這個函式很特殊,當類建立乙個物件例項的...

Python 全棧開發 python模組與包

模組是乙個包含所有你定義函式和變數的檔案,即 乙個python檔案就可以稱之為乙個模組。在python中,模組的使用方式都是一樣的,細分可以分為四個通用類別 1 從檔案級別組織程式,更方便管理 隨著程式的發展,功能越來越多,為了方便管理,我們通常將程式分成乙個個的檔案,這樣做程式的結構更清晰,方便管...

Python 全棧開發 python內建函式

abs 對傳入引數取絕對值 bool 對傳入引數取布林值,none,0,這些引數傳入bool後,返回false all 所有傳入引數為真,才為真 any 任何乙個傳入引數為真,才為真 ascii 自動執行傳入引數的 repr 方法 將物件轉換為字串 bin 接收乙個十進位制,轉換成二進位制 oct ...