日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python xml etree_python xml.etree解析xml

發布時間:2023/12/10 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python xml etree_python xml.etree解析xml 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

config.xml

<?xml version="1.0" encoding="UTF-8"?>

linux

30

windows

20

1 ,解析出xml文件的根元素

from xml.etree import ElementTree as ET

tree=ET.parse('config.xml')

root=tree.getroot()

或者 (從字符串中解析)

root = ET.fromstring(country_data_as_string)

tree=ET.parse('config.xml') #tree為ElementTree 類型

root=tree.getroot()或root = ET.fromstring(country_data_as_string) #root為Element類型

2 以root為根元素開始解析:主要使用Element的方法

Element.iter()遍歷他所有的后代元素(包括其自己)。

nodes = root.iter()

for i in nodes:

print i.tag

結果:

employees

employee

name

age

employee

name

age

Element.iter("employee") :返回所有的employee元素,通常用于找到employee元素的attrib或者text

nodes = root.iter('name')

for i in nodes:

print i.text

結果:

linux

windows

):查詢第一個標簽名為tagname的元素

for e in root.findall('employee'):

name = e.find('name').text

lang = e.find('name').get('lang')

print name,lang

結果:

linux en

windows None

Element Objects:

tag :元素標簽名

text:元素標簽的文本值,即兩個變簽名之間的文本值。

tail:該元素后一個標簽名到下一個標簽名之間的文本部分

attrib:返回一個字典結構,屬性名:屬性值 {'lang': 'en', 'price': '21'}

get(key,default=None):返回該元素名為key的屬性值,如果該屬性為找到,則返回default(None)。

items():返回該元素所有的(屬性,屬性值),返回一個列表,列表里每一項為(屬性,屬性值)。[('lang', 'en'), ('price', '21')]

keys():返回一個列表,每一項為該元素的屬性名 。['lang', 'price']

findall(match):match 為tag name 或 xpath。通過tag name 或者xpath去查找符合的所有子元素,返回一個列表,包含按文檔順序的子元素對象。子元素不包括孫元素一下的后代元素

find(match):通過tag name 或者xpath去查找符合的第一個子元素,返回一個元素對象或者None。

findtext(match,default=None):match 為tag name 或 xpath。查找一個符合match的資源的text。返回找到的文本內容或者沒找到返回default

iter(tag=None) :Creates a treeiteratorwith the current element as the root。The iterator可以迭代該元素和所有的后代元素(按文檔出現的先后順序)。若果tag不是None或者‘*’,返回所有tag=tag的元素對象。

iterfind(match):Finds all matching subelements, by tag name or path. Returns an iterable yielding all matching elements in document order。返回值為不懂,一般也不用。

itertext():Creates a text iterator. The iterator loops over this element and all subelements, in document order, and returns all inner text。生成一個文本迭代器,他按文檔出現順序遍歷自己和所有的子元素,返回所有的文本值,包含空格和換行。

text = root.itertext()

for i in text:

print i

makeelement(tag,attrib)

remove(subelement):Removessubelementfrom the element。

clear() :清除該元素的所有子元素和屬性,設定text和attrib的值為None。

insert(index, element):在該元素子元素的指定的位置插入一個子元素。

set(key, value) :Set the attribute key on the element to value.把元素的key屬性設置為value。

append(subelement):Adds the element subelement to the end of this elements internal list of subelements

extend(subelements):Appends subelements from a sequence object with zero or more elements. Raises AssertionError if a subelement is not a valid object.

element = root.find('foo')

if not element: # careful!

print "element not found, or element has no subelements"

if element is None:

print "element not found"

xml.etree.ElementTree.fromstring(text) :從一個字符串中獲取ElementTree的跟元素,返回值為Element。

總結

以上是生活随笔為你收集整理的python xml etree_python xml.etree解析xml的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。