#讀取person.xml import xml.etree.ElementTree as xml #結構:person → student →(id,name,tel,mail) #1.顯示根目錄的標籤名稱 tree = xml.ElementTree(file='person.xml') root = tree.getroot() print('根目錄的標籤名稱',root.tag) #2.印出根目錄下第一筆記錄的第1,2,3個欄位的文字 print('2.印出根目錄下第一筆記錄的第1,2,3個欄位的文字') print(root[0][0].text) print(root[0][1].text) print(root[0][2].text) print(root[0][3].text) #3.印出所有的姓名:root.iter(tag標籤)(tag標籤 = name) print('3.印出所有的姓名') for elem in root.iter("name"): print(elem.tag,elem.text) #4.印出所有的姓名:root.iterfind(tag標籤) print('4.查詢某個tag標籤名稱:') for elem in root.iterfind('student/mail'): print(elem.tag,'=',elem.text) #5.印出所有的姓名:root.findall(tag標籤)(tag標籤 = student/name) print('5.印出所有的姓名') for elem in root.findall("student/name"): print(elem.tag,elem.text) #6.印出任意階層的電話tel:root.findall(".//tel") print('6.印出任意階層的電話tel') for elem in root.findall(".//tel"): print(elem.tag,elem.text) #7.查詢某個tag標籤tel的所有文字 print('7.查詢某個tag標籤的所有文字:') for elem in root: print(elem.find('tel').text) #8.印出有包含name屬性的attrib資料(<student name="testing4" hash="1cdf045c4">) print('8.印出有包含name屬性的attrib資料') for elem in root.findall("student[@name]"): print(elem.tag,elem.attrib) #9.印出姓名=卓水信的的電話,email print('9.印出姓名=卓水信的的電話,email') for elem in root.findall("student[name='卓水信']"): print(elem[0].text,elem[1].text,elem[2].text,elem[3].text) #10.顯示 第一個student的電話,email print('10.顯示 第一個student的電話,email') for elem in root.findall("student[1]"): print(elem[0].text,elem[1].text,elem[2].text,elem[3].text) print('10.顯示 第二個student的電話,email') for elem in root.findall("student[2]"): print(elem[0].text,elem[1].text,elem[2].text,elem[3].text) print('10.顯示最後一個student的電話,email') for elem in root.findall("student[last()]"): print(elem[0].text,elem[1].text,elem[2].text,elem[3].text) print('10.顯示最後第二個student的電話,email') for elem in root.findall("student[last()-1]"): print(elem[0].text,elem[1].text,elem[2].text,elem[3].text) #11.顯示第1階層所有階層的標籤名稱,屬性 print('11.顯示第1階層所有階層的標籤名稱,屬性:') for elem in root: print(elem.tag,elem.attrib) #12.顯示第2階層的標籤名稱,文字值 print('#12.顯示第2階層的標籤名稱,文字值 ') for elem1 in root: for elem2 in elem1: print(elem2.tag,elem2.attrib,elem2.text) #13.查詢卓水信是否存在 print('13.查詢卓水信是否存在:方法1:') for elem in root.findall("student[name='卓水信']"): if elem[1].text == '卓水信': print('資料存在=',elem[0].text,elem[1].text,elem[2].text,elem[3].text) else: print('沒有找到') print('14.查詢卓水信是否存在:方法2:') for elem1 in tree.iter(): for elem2 in elem1: if elem2.text=='卓水信': print('name =',elem1.find('name').text) print('tel =',elem1.find('tel').text) print('mail =',elem1.find('mail').text)