dingsir的个人博客分享 http://blog.sciencenet.cn/u/dingsir

博文

学习笔记: Python解析XML

已有 2282 次阅读 2020-7-23 20:56 |个人分类:软件杂谈|系统分类:教学心得| 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的代码特意写一下备忘.



http://blog.sciencenet.cn/blog-1213210-1243275.html

上一篇:电解液与电极电位的二则花絮
下一篇:命令直通车的巧妙利用 | 过度拟合与如何避免

0

评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-12-1 03:26

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部