最近在青铜器软件的实施中,踫到一个问题, 样品COA的结果如何在字段中存放? 软件本身没有提供复合字段可以存放这类数值,于是我选择了用长文本字段来保存.COA值以XML格式存放成文本. 大约的格式是这样的(直接填写稍有不便,可以填写在Excel表格中,利用设置好的函数连接起来,生成这种固定格式的文本.)
xmldata_schema.rar
为了方便以后对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文件就可以运行.)
结果如下图.
整个过程还是比较简单的. 为了学习解析xml的代码特意写一下备忘.