最近需要用matlab进行XML文件的读写,起初尝试用matlab自带的函数来做,但是发现不是很方便。后来找到了一个MATLAB的工具包,xml_io_tools,这个工具包以结构体的形式将XML读入内存,便于我们后续进一步的处理,值得大家尝试。 xml_io_tools下载地址:http://cn.mathworks.com/matlabcentral/fileexchange/12907-xml-io-tools
下面是一个使用xml_io_tools的小Demo:
function objects=getObjects(filename)
filename='config.xml';
DOM= xml_read(filename);
Targets=DOM.TrackTarget.Items;
objects=cell(1,size(Targets,1));
for i=1:size(Targets)
Items=Targets(i);
objects{i}.Name=Items.ATTRIBUTE.Name;
objects{i}.start=Items.ATTRIBUTE.start;
objects{i}.end=Items.ATTRIBUTE.end;
objects{i}.id=Items.Item.ATTRIBUTE.id;
end
end
下面是XML文件:
<?xml version="1.0" encoding="gb2312" ?>
<Message Version="1.0">
<Target>
<Items Name="30" start="57" end="6299">
<Item id="9" />
</Items>
<Items Name="30" start="57" end="1203">
<Item id="7"/>
</Items>
<Items Name="40" start="885" end="6299">
<Item id="3" />
</Items>
<Items Name="50" start="1305" end="2549">
<Item id="2" />
</Items>
</Target>
</Message>