丁祥欢
学习笔记: Python解析XML
2020-7-23 20:56
阅读:3810
标签:xml, python, 复合信息, 存储, 解析, python, python

最近在青铜器软件的实施中,踫到一个问题, 样品COA的结果如何在字段中存放? 软件本身没有提供复合字段可以存放这类数值,于是我选择了用长文本字段来保存.COA值以XML格式存放成文本. 大约的格式是这样的(直接填写稍有不便,可以填写在Excel表格中,利用设置好的函数连接起来,生成这种固定格式的文本.)

xmldata_schema.rar xmldata_18-43-18.png

为了方便以后对COA数据的解析和再利用,我特意设计成这种XML格式的文本, 方便以后可以转化为表格或数据库形式(青铜器的富文件格式可以使用表格,但不便解析). 基本格式是 每对<样品记录>标签下,有序号、样品型号、批号、水分、酸度、色度、密度、电导率等标签,还可以根据需要任意增加其它标签. 其中 有几个还设计了属性来补充说明测试的条件或单位。比如电导率就定义了 测试温度或单位等。其它额外需要追加的信息, 预留了备注字段来存储, 甚至备注字段也可以按XML格式来走.

 相应地,根据这个xml示例利用liquid studio生成了一个xml scheme,见上面的压缩包. 它可以用来检查这些xml内容是否符合设计缩写的要求。 

这些文本形式的数据,如果转化成其它形式的文本可以用xlst, 但转化成Excel文件用xlst有点困难. 我尝试了用Python来解析xml并写入Excel。因为COA比较简单,直接用dom模块处理即可. 读写Excel使用了我比较熟悉的xlwings库.  请注意下述代码中sampledata.xml的文件路径, 运行时要据实修改.

xmlCOAparser.rar (source code, 如果有Python3.8且装上xlwings,双击py文件就可以运行.) 

2020-07-23_20-49-01.png


结果如下图.

2020-07-23_20-52-29.png

整个过程还是比较简单的. 为了学习解析xml的代码特意写一下备忘.

转载本文请联系原作者获取授权,同时请注明本文来自丁祥欢科学网博客。

链接地址:https://wap.sciencenet.cn/blog-1213210-1243275.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
该博文不允许评论
确定删除指定的回复吗?
确定删除本博文吗?