python解析xml
import xml.dom.minidom as minidom dom = minidom.parse("aa.xml") root = dom.getElementsByTagName("Schools") #The function getElementsByTagName returns NodeList. print(root.length) for node in root: print("Root element is %s。" %node.tagName)# 格式化输出,与C系列语言有很大区别。 schools = node.getElementsByTagName("School") for school in schools: print("school.nodeName",school.nodeName) print("school.tagName:",school.tagName) print("school.getAttribute:",school.getAttribute("Name")) print("school.getAttribute.value:",school.attributes["Name"].value) classes = school.getElementsByTagName("Class") print("There are %d classes in school %s" %(classes.length, school.getAttribute("Name"))) for mclass in classes: print("mclass.getAttribute",mclass.getAttribute("Id")) for student in mclass.getElementsByTagName("Student"): print(student.attributes["Name"].value) # print(student.getElementsByTagName("English")[0].nodeValue) #这个为什么啊? # print(student.getElementsByTagName("English")[0].childNodes[0].nodeValue) print(student.getElementsByTagName('ll')[0].childNodes[0].nodeValue) student.getElementsByTagName("ll")[0].childNodes[0].nodeValue = 75 #getElementsByTagName返回的是一个集合 #childNodes返回的也是一个集合 f = open('new.xml', 'w', encoding = 'utf-8') dom.writexml(f,encoding = 'utf-8') f.close()
<?xml version="1.0" encoding="utf-8"?> <Schools> <School Name="XiDian"> <Class Id="030612"> <Student Name="salomon"> <Scores> <Math>98</Math> <English> <ll>85</ll> </English> <physics>89</physics> </Scores> </Student> <Student Name="Jupiter"> <Scores> <Math>74</Math> <English> <ll>83</ll> </English> <physics>69</physics> </Scores> </Student> </Class> <Class Id="030611"> <Student Name="Venus"> <Scores> <Math>98</Math> <English> <ll>83</ll> </English> <physics>89</physics> </Scores> </Student> <Student Name="Mars"> <Scores> <Math>74</Math> <English> <ll>83</ll> </English> <physics>69</physics> </Scores> </Student> </Class> </School> </Schools>