XML和MATLAB交互的基本操作[1]:读取XML
- 作者 · 波特
- 776次浏览
- 2018-02-02
- 来源 · 知乎
- 分享
- 字体-+
XML和MATLAB交互的基本操作:读取XML。
最近工作中遇到了这样的需求:
- 数据存储于XML文件中
- 需要将XML文件中的部分数据进行读取后处理
- 将处理好的数据写入新的XML文件
XML文件格式大致如下
我们的任务是将node1中key的值取出,简单交换后放到另一个XML文件中,格式如下
在MATLAB中,与XML的接口有xmlread和xmlwrite,其底层是用javax.xml.parsers包实现的。
首先我们从input.xml取值
如果XML的格式有效,则返回[#document: null]。 可以看到返回的其实是一个java类的实例,熟悉DOM结构的同学会发现,接下来就是基本的DOM操作了。
对于我们这些对DOM一无所知的小白来说,以下是w3schools对DOM的图解
简单来说,每一个Element都有一个Tag,Element可以有Attribute,也可以有Text
通过查看input.xml我们会发现有很多Element都用‘data’来做Tag,如果我们直接以‘data’作为查询条件,则会返回很多无用信息。这里最好的方法是先将搜索范围缩小到‘node1’的子节点。这里注意需要用item来提取getElementsByTagName到返回值,而且是久违了的从0开始有没有(其实是java……)
这时我们已经将搜索范围缩小到node1中了,我们可以使用'data'作为搜索条件提取
我们可以用getLength来查看返回结果的数量
我们继续提取attribute,注意下标从0开始。还有一个需要注意的就是Java返回的字符类型都需要转化为MATLAB的char或string类型
运行后
至此读取xml格式文件的工作就结束了,下一篇我们继续将读取后的数据写入xml格式文件。
本文转载自知乎专栏MATLAB,作者:波特,如若转载请联系原作者。
相关标签:
- MATLAB
参与评论