题目:
读入xml文本,按成绩大小由大到小排序输出成txt(40分)。Xml文本大致内容:
<grades>
<grade>
<id>2019001</id>
<name>张三</name>
<course>机器学习</course>
<score>85</score>
</grade>
<grade>
<id>2019002</id>
<name>李四</name>
<course>操作系统</course>
<score>90</score>
</grade>
<grade>
<id>2019003</id>
<name>王五</name>
<course>数据结构</course>
<score>95</score>
</grade>
</grades>
输出txt文本:
2019003,王五,数据结构,95
2019002,李四,操作系统,90
2019001,张三,机器学习,85
人生苦短,python赛高:
from xml.dom.minidom import parse
import xml.dom
def eleData(node,tag):
return node.getElementsByTagName(tag)[0].childNodes[0].data.strip()
#用xml解析器打开文件
DOMTree = parse('grades.xml')
content = DOMTree.documentElement
#获取所有学生的信息
grades = content.getElementsByTagName('grade')
#从高到低排序
grades.sort(reverse=True,key=lambda x:int(eleData(x,'score')))
#打印每个人的信息
with open('result.txt','w') as newFile:
for grade in grades:
print(eleData(grade,'id'),end=",",file=newFile)
print(eleData(grade,'name'),end=",",file=newFile)
print(eleData(grade,'course'),end=",",file=newFile)
print(eleData(grade,'score'),file=newFile)