XML和MATLAB交互的基本操作[1]:读取XML

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

参与评论