# 使用minidom解析器打开 XML 文档
MR上报序列 = 0
for 子文件 in 文件列表:
print(子文件)
DOMTree = xml.dom.minidom.parse(dir+子文件)#使用parse解析器打开xml文档,并将其解析为DOM文档,也就是内存中的一棵树,并得到这个对象
objects=DOMTree.documentElement #获取xml文档对象,就是拿到DOM树的根
#print(bulkPmMrDataFile.toxml()) #返回xml的文档内容
#print(bulkPmMrDataFile.lastChild) #返回元素的最后一个子节点
#print(bulkPmMrDataFile.firstChild) #返回元素的首个子节点
object_list=objects.getElementsByTagName('object') #getElementsByTagName(name)获取节点元素
#print(object_list[0].hasAttribute("AMFUENGAPID")) #hasAttribute(name)判断是否包含属性值
for 子项 in object_list:
if 子项.getAttribute("EventType")=="B2" or 子项.getAttribute("EventType")=="B1": #输出属性值
MR上报序列=MR上报序列+1
gnb = objects.getElementsByTagName('gNB')
GNB = gnb[0].getAttribute("id") #提取站点号
AMFUENGAPID=子项.getAttribute("AMFUENGAPID") #AMFUENGAPID
AMFRegionID=子项.getAttribute("AMFRegionID") #AMFRegionID
AMFSetID=子项.getAttribute("AMFSetID") #AMFSetID
AMFPointer=子项.getAttribute("AMFPointer") #AMFPointer
EventType=子项.getAttribute("EventType") #EventType
id=子项.getAttribute("id") #id
#子项信息="GNB:"+GNB+",AMFUENGAPID:"+AMFUENGAPID+",AMFRegionID:"+AMFRegionID+",AMFSetID:"+AMFSetID+",AMFPointer:"+AMFPointer+",id:"+id+",EventType:"+EventType
子项信息 = GNB + " "+id + " " + EventType
paixu=0 #MR小区排序
for LTE小区 in 子项.childNodes: #node.childNodes:返回节点node下所有的子节点组成的list
if LTE小区.nodeName=="v": #返回XML的文档内容
paixu=paixu+1
if paixu==1: #筛选排查不是第一上报序列的
MR项目= str(MR上报序列)+" "+str(paixu)+" "+子项信息+" "+LTE小区.toxml()
xml_list.append([MR项目])
xml=pd.DataFrame(xml_list)
xml.to_csv(dir2)
xml文件的数据提取及解析
最新推荐文章于 2022-11-25 21:45:54 发布
本文详细探讨了如何使用Python进行XML文件的数据提取和解析。从基础的XML结构理解到利用Python内置模块如ElementTree进行解析操作,通过实例解析XML文档,提取关键信息,助你轻松掌握XML处理技巧。
3195

被折叠的 条评论
为什么被折叠?



