Python學海無涯路 第28回 xml模組

2021-09-25 06:33:10 字數 4036 閱讀 3165

3、修改

4、刪除

5、建立xml

xml示例如下:zoo.xml

<?xml version="1.0"?>

>

name

="sheep"

>

>

1age

>

skill

="run"

breathe

="肺"

>

走walk

>

animal

>

name

="bird"

>

>

2age

>

skill

="fly"

breathe

="肺"

>

飛行walk

>

animal

>

>

例:

#!/usr/bin/env python

# -*- coding:utf-8 -*

import xml.etree.elementtree as et #為xml.etree.elementtree起個別名

tree=et.parse(

"zoo.xml"

)root=tree.getroot(

)print

(root.tag)

輸出:

zoo例:

#!/usr/bin/env python

# -*- coding:utf-8 -*

import xml.etree.elementtree as et #為xml.etree.elementtree起個別名

tree=et.parse(

"zoo.xml"

)root=tree.getroot(

)for node in root:

print

(node.tag)

輸出:

例:

#!/usr/bin/env python

# -*- coding:utf-8 -*

import xml.etree.elementtree as et #為xml.etree.elementtree起個別名

tree=et.parse(

"zoo.xml"

)root=tree.getroot(

)for node in root:

print

(node.attrib)

輸出:

注:輸出的是字典型別

例:遍歷整個xml文件

#!/usr/bin/env python

# -*- coding:utf-8 -*

import xml.etree.elementtree as et #為xml.etree.elementtree起個別名

tree=et.parse(

"zoo.xml"

)root=tree.getroot(

)for node in root:

for child in node:

print

(child.tag,child.text)

輸出:

age 1

walk 走

age 2

walk 飛行

例:遍歷所有age 節點

#!/usr/bin/env python

# -*- coding:utf-8 -*

import xml.etree.elementtree as et #為xml.etree.elementtree起個別名

tree=et.parse(

"zoo.xml"

)root=tree.getroot(

)for node in root.

iter

("age"):

print

(node.tag,node.text)

輸出:

age 1

age 2

例:所有age 節點的值加1,並加入新屬性

#!/usr/bin/env python

# -*- coding:utf-8 -*

import xml.etree.elementtree as et #為xml.etree.elementtree起個別名

tree=et.parse(

"zoo.xml"

)root=tree.getroot(

)for node in root.

iter

("age"):

new_age=

int(node.text)+1

node.text=

str(new_age)

node.

set(

"updated"

,"yes"

)#為每個age節點加屬性

tree.write(

"zoo.xml"

,encoding=

"utf-8"

,xml_declaration=

true

)

輸出:

例:刪除age=1的節點

#!/usr/bin/env python

# -*- coding:utf-8 -*

import xml.etree.elementtree as et #為xml.etree.elementtree起個別名

tree=et.parse(

"zoo.xml"

)root=tree.getroot(

)for node in root.findall(

"animal"):

age=

int(node.find(

"age"

).text)if1

==age:

root.remove(node)

tree.write(

"zoo.xml"

,encoding=

"utf-8"

,xml_declaration=

true

)

輸出:

import xml.etree.elementtree as et #為xml.etree.elementtree起個別名

root=et.element(

"zoo"

)node=et.subelement(root,

"pig"

,attrib=

)age=et.subelement(node,

"age"})

walk=et.subelement(node,

"walk"

)age.text=

"2"walk.text=

"走"et=et.elementtree(root)

#生成文件對像

et.write(

"zoo.xml"

,encoding=

"utf-8"

,xml_declaration=

true

)et.dump(root)

#列印生成的格式

輸出: 2

Python學海無涯路 第08回 函式

3 返回值 def test x y 2 x return y呼叫函式時可使用的正式引數型別 引數須以正確的順序傳入函式。呼叫時的數量必須和宣告時的一樣,不然會出現語法錯誤。使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致,因為 python 直譯器能夠用引數名匹配引數值。如果引數中還有其他引數...

Python學海無涯路 第12回 map函式

將列表中的每個元素加1,可以使用以下方法 usr bin env python coding utf 8 array num 1 2,3 4 定義乙個函式,數字加1 deffunc add x return x 1def map test func,array ret 定義乙個空列表 for i i...

Python學海無涯路 第17回 迭代器

可迭代物件 實現了迭代器協議的物件 迭代器有兩個基本的方法 iter 和 next for迴圈的本質 將物件用 iter 轉換成可迭代物件,呼叫其next 方法。字串 列表 元組 字典 集合 檔案物件,這些都不是可迭代物件,只不過在for迴圈時,呼叫了他們內部的 iter 方法,把它們變成了可迭代物...