matlab读xml文件的两种方式

本文介绍了在MATLAB中使用xmlread函数读取XML文件的两种方法,包括获取name节点和param节点的内容。示例代码详细展示了如何解析XML文件并提取所需信息。

1.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<info>
   <name>Jack</name>
   <gender>male</gender>
   <address>Beijing</address>
   <phone>
      <mobilephone>123456</mobilephone>
      <landline>012345</landline>
   </phone>
</info>

 

代码如下:

% read xml
xmlDoc = xmlread('info.xml');

% name node
name_array = xmlDoc.getElementsByTagName('name');
name = char(name_array.item(0).getTextContent());
disp(['name:' name]);

% phone element
phone_array = xmlDoc.getElementsByTagName('phone');
phone = phone_array.item(0);
disp([char(phone.item(1).getNodeName()) ':' char(phone.item(1).getTextContent())]);
disp([char(phone.item(3).getNodeName()) ':' char(phone.item(3).getTextContent())]);


首先用xmlread读入整个xml文件,此后通过getElementsByTagName(‘name’)找出name节点,注意没有getNodeByTagName方法,并且getElementsByTagName()得到的是一个NodeList数组,因为xml允许节点重名,可能有多个name节点,所以通过item(0)得到第一个name节点,并且通过getTextContent()方法输出name节点的内容。

原文链接:https://blog.youkuaiyun.com/lkj345/article/details/52763790

2.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<parameters>
    <param name="inputPath1">C:\Users\Administrator\Desktop\test\aaa.txt</param>
    <param name="inputPath2">C:\Users\Administrator\Desktop\test\bbb.txt</param>
    <param name="inputPath3">C:\Users\Administrator\Desktop\test\ccc.txt</param>
    <param name="outputDir">C:\Users\Administrator\Desktop\test\ddd.txt</param>
</parameters>

代码如下:

%read xml,get file paths from xml
xmlDoc = xmlread('para.xml');

Params= xmlDoc.getElementsByTagName('param');% 获取param节点集合
Num_Params=Params.getLength();%查看param节点的个数
Param1=Params.item(0);%从param节点集合获取第一个param节点,注意集合的索引已从0开始的
Param1Name=char(Param1.getAttribute('name'));%获取param1的Name属性
if (strcmp(Param1Name,'aaa'))%如果Name属性=aaa,
Path1= char(Param1.getTextContent());%则获取此节点的值(即所需文件的路径)
end
disp(['Path1:' Path1]);

参考这个写的:https://blog.youkuaiyun.com/langb2014/article/details/48680901

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值