matlab 读取xml文件的另一个简单例子
(2013-07-10 19:29:46)
标签:
matlabxml文化 |
分类: 科研 |
xml文件如下:
<?xml version='1.0'
encoding='UTF-8'?>
<nrml xmlns:gml="http://www.opengis.net/gml" xmlns="http://openquake.org/xmlns/nrml/0.4">
<hazardMap statistics="mean"
IMT="PGA" investigationTime="50.0" poE="0.1">
<node lon="116.556679644" lat="38.7640703645"
iml="0.0352277231886"/>
<node lon="116.560354569" lat="39.2137311674"
iml="0.0775584746988"/>
<node lon="116.564112835" lat="39.6633919704"
iml="0.0990228925441"/>
<node lon="117.119143604" lat="37.8647487586"
iml="0.0216950775134"/>
<node lon="117.126172076" lat="38.3144095615"
iml="0.0326954929515"/>
<node lon="117.133359288" lat="38.7640703645"
iml="0.0522833449299"/>
<node lon="117.140709138" lat="39.2137311674"
iml="0.0982546625817"/>
<node lon="117.14822567" lat="39.6633919704"
iml="0.111277021458"/>
<node lon="117.155913078" lat="40.1130527734"
iml="0.0695124677318"/>
<nrml xmlns:gml="http://www.opengis.net/gml" xmlns="http://openquake.org/xmlns/nrml/0.4">
。。。。。。
一下省略,都是由这些点组成的。暂且取名为test2.xml
%读取openquake hazard maps的程序
clear
clc
Doc = xmlread('test2.xml');
%读取xml文件
Coordinate =
Doc.getElementsByTagName_r('node');%把所有Tag名为node的储存到Coordinate中
results=zeros(Coordinate.getLength,3);%先把最后结果设置好,为Coordinate.getLength行,3列的向量
for
jj=0:Coordinate.getLength-1
Info=Coordinate.item(jj); %读取Coordinate中第jj个,也就是xml中node集合中的第jj行,xml是以0开始的
Long=char(Info.getAttribute('lon'));%把lon属性的值付给Long
Latitude=char(Info.getAttribute('lat'));%把lat属性的值付给Latitude
Intensity=char(Info.getAttribute('iml'));%把iml属性的值付给Intensity
long=str2double(Long);%转换为数值形式,因为上面的只是char型数据
latitude=str2double(Latitude);%同上
intensity=str2double(Intensity);%同上
results(jj+1,:)=[long latitude
intensity];%把所有数据组织到一起
end