前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用BeautifulSoup和python处理xml

利用BeautifulSoup和python处理xml

作者头像
钱塘小甲子
发布2019-01-29 09:53:11
1.3K0
发布2019-01-29 09:53:11
举报

SUMO的软件有些地方真是不好。很多SUMO中要用到的xml文件之前都是手工完成的。今天用BeautifulSoup模块写了一个代码,解决了最麻烦的排序问题。

问题其实很简单,就是根据xml标签中的一个特定属性进行排序,然后再保存成文件。

譬如下面这个xml文件,我们希望标签的顺序能够根据depart中的数值来排序。在SUMO软件中,这个就是车辆的出发时间。

import bs4#导入BeautifulSoup的包
soup = bs4.BeautifulSoup(open('E:/test.xml'))#读取需要排序的xml文件
soup=soup.body
soup = soup.routes#根据xml文件的结构,做一个简单的处理
 list = []#构建一个List
for child in soup.children:#遍历子节点,并存在List中,用来排序
    print cnt
    list.append(child)
    cnt = cnt+1

kk = list[0]
for i in range (0, len(list)):#删除冗余的节点信息
    if list[i] == kk:
        print i
        list.pop(i)

listBackup = list[:]#复制一份List,怕出什么意外



def fun(x):#define the sort function
    return float(x['depart'])
    
list.sort(key=fun) #sort the list 


    
f=file("E:/sorted2.xml","a+")
for cnt in range(0,len(list)):#write the string to the file
    f.write(str(list[cnt])+'\n') 
f.close    #close the file handler

上面的代码能很好实现这样的功能,以后再也不用复制黏贴了~~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年11月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档