2019华南理工机试题--解析XML并写进txt

题目:

读入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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值