1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | #!/usr/bin/python # -*- coding: UTF-8 -*- from xml.dom.minidom import parse import xml.dom.minidom """ 数据输入 xmlname 文件名字 nodename 要获取的路径 输入格式 <?xml version="1.0"?> <opencv_storage> <KfrmGPS_ type_id="opencv-matrix"> <rows>2508</rows> <cols>3</cols> <dt>d</dt> <data> 3.4236497333300001e+01 1.0889943616700000e+02 400. 3.4236502333300002e+01 1.0889943933300000e+02 400. 3.4236507166700001e+01 1.0889944250000001e+02 400. 3.4236511999999998e+01 1.0889944566699999e+02 400. </data> </KfrmGPS_> <KfrmGPS_m_ type_id="opencv-matrix"> <rows>2508</rows> <cols>3</cols> <dt>d</dt> <data> 3.4236724219391739e+01 1.0889944810627938e+02 3.9653005784470588e+02 3.4236728962259967e+01 1.0889945157710224e+02 3.9650777322053909e+02 3.4236731965099686e+01 1.0889945368682891e+02 3.9653498737327754e+02 3.4236738454649888e+01 1.0889945827032633e+02 3.9652323448006064e+02 </data> </KfrmGPS_m_> </opencv_storage> 输出 转化成flaost的列表 纬 经 高 """ def read_xml_getgps(xmlname,nodename): # 使用minidom解析器打开 XML 文档 DOMTree = xml.dom.minidom.parse(xmlname) collection = DOMTree.documentElement KfrmGPS_ = collection.getElementsByTagName(nodename) #for KfrmGPS_i in KfrmGPS_: KfrmGPS_i = KfrmGPS_[ 0 ] #可能有多个 gps_rows = KfrmGPS_i.getElementsByTagName( 'rows' )[ 0 ] gps_rows = gps_rows.childNodes[ 0 ].data gps_cols = KfrmGPS_i.getElementsByTagName( 'cols' )[ 0 ] gps_cols = gps_cols.childNodes[ 0 ].data gps_data = KfrmGPS_i.getElementsByTagName( 'data' )[ 0 ] gps_data_str = str (gps_data.childNodes[ 0 ].data) #print("KfrmGPS_/data/内容",gps_data_str) alllines = gps_data_str.strip().split( "\n" ) # 行的分割符号 两个空格 i = 1 gps_list = [] for lines_i in alllines: line_ii = lines_i.strip().split( " " ) # 行内部的珊瑚橘分割符号 一个空格 real_gps_lat = line_ii[ 0 : 1 ] # list--str real_gps_lat = "".join(real_gps_lat).strip() real_gps_lon = line_ii[ 1 : 2 ] # list--str real_gps_lon = "".join(real_gps_lon).strip() real_gps_high = line_ii[ 2 : 3 ] # list--str real_gps_high = "".join(real_gps_high).strip() #print("字符串类型",i,real_gps_lon,real_gps_lat,real_gps_high) real_gps_lat = float (real_gps_lat) real_gps_lon = float (real_gps_lon) real_gps_high = float (real_gps_high) #print("float类型",i,real_gps_lon,real_gps_lat,real_gps_high) i = i + 1 gps_i = [real_gps_lat,real_gps_lon,real_gps_high] gps_list.append(gps_i) print ( "节点" ,nodename, "行数" ,gps_rows, "列数" ,gps_cols) return gps_list if ( __name__ = = "__main__" ): xmlpath = "20230107142004075.xml" real_gps_list = read_xml_getgps(xmlpath, "KfrmGPS_" ) slam_gps_list = read_xml_getgps(xmlpath, "KfrmGPS_m_" ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2018-02-02 3.7 AnsyncTask异步任务