Matlab 读取xml文件的一个简单例子

Matlab 读取xml文件的一个简单例子)

所要读取的xml文件如下: <?xml version="1.0" encoding="UTF-8" ?>- -   0.005 0.007 0.0098 0.0137 0.0192 0.0269 0.0376 0.0527 0.0738 0.103 0.145 0.203 0.284 0.397 0.556 0.778 1.09 1.52 2.13- - gml:Point  gml:pos116.556679644 38.7640703645</gml:pos>  </gml:Point>  0.764679817743 0.662888722857 0.534651971396 0.395102975673 0.262868748692 0.156498150108 0.0839056548406 0.0398623492904 0.0168311356765 0.00628243377305 0.00192976563727 0.00050178417303 0.000101955783797 1.49877361281e-05 1.25257346917e-06 2.48172116758e-08 0.0 0.0 0.0  - - gml:Point  gml:pos116.560354569 39.2137311674</gml:pos>  </gml:Point>  0.819195867027 0.745982415614 0.650046705716 0.538095912232 0.42148331053 0.314451605987 0.226852492161 0.157895373067 0.105089631293 0.0655477304784 0.0365455920132 0.0179762171754 0.00739120623057 0.00242299927625 0.000555837553419 7.80321663033e-05 3.68909948061e-06 4.68251725086e-08 0.0  - - gml:Point  gml:pos116.564112835 39.6633919704</gml:pos>  </gml:Point>  0.818984158857 0.748053882014 0.660281270455 0.563565016939 0.465616471518 0.372887218748 0.289156026001 0.213045568572 0.14661406957 0.0926499641819 0.0516418099588 0.0253320791887 0.0105544475567 0.00367398872789 0.00100376612408 0.000217455272141 3.76724116531e-05 5.4251531106e-06 3.86226385822e-08  。。。。。。。。。。。。。。。。后面还有很多,不过都是一样的就是由许多组成。要读取的有三类数据,一个是后面那一行数据,代表加速度水平,一个是gml:pos后面那一行数,是坐标,还有一个就是后面那一行,代表超越概率。首先,要明白gml:pos这些都叫Tag。m文件如下:(上面那个xml文件取名为test.xml好了)clcclearDoc=xmlread(‘test.xml’); %读入xml文件IML=Doc.getElementsByTagName_r(‘IMLs’);%把名为IMLs的所有标签储存在IML里Coordinate=Doc.getElementsByTagName_r(‘gml:pos’);%同上Poes=Doc.getElementsByTagName_r(‘poEs’);%同上IMLContent=char(IML.item(0).getFirstChild.getData);%因为xml里只有一个IMLs标签,这里不用循环。IMLn=str2num(IMLContent); %必须用str2num,不能用str2double 把获得的加速度值转化为数字形式nSites=Coordinate.getLength; %工程场地的个数coordinate=zeros(nSites,2); % 把坐标向量的维数定好,先以0代替poes=zeros(nSites,length(IMLn));%把超越概率值的维数定好,以0代替for jj=0:nSites-1 % <gml:pos>有多个,所以必须循环,而且是从0开始的    Tcoordinate=char(Coordinate.item(jj).getFirstChild.getData);%获得第jj个坐标的内容    Tpoes=char(Poes.item(jj).getFirstChild.getData);%获得第jj个超越概率数值内容    Tcoor=str2num(Tcoordinate);%把以上内容转换为数值形式    poes(jj+1,:)=str2num(Tpoes);%把以上内容转换为数值形式并储存在poes向量中    coordinate(jj+1,1)=Tcoor(1);%把坐标储存在coordinate向量中    coordinate(jj+1,2)=Tcoor(2);%把坐标储存在coordinate向量中下

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值