# MATLAB XML Parser
### 接口说明
#### XMLElement
XMLElement 结构体包含以下字段,分别对应XML
- tag 字符数组, 为XML结点名
- content 字符数组,XML结点内容
- attribute 结构体,存放结点属性
- children 数组,存放子节点
```
<tag attr1="val1" attr2="val2">
<child1>...</child1>
<child2>...</child2>
content
</tag>
```
**例子**
```matlab
A = XmlElement('Student');
A.m_content = 'SYSU';
% A = XmlElement('Student', 'SYSU');
% 添加属性
A = A.appendAttri('ID', '123456');
A = A.appendAttri('Class', '2-1');
% 添加子结点
B = XmlElement('name', 'haisong');
C = XmlElement('age', '2');
A = A.appendChild(B);
A = A.appendChild(C);
% 格式化字符串
t = sprintf(A.formatStr(0));
disp(t)
% A.print();
% 根据tag查找第一个子结点
D = A.findChild('name');
D.print();
```
#### parseXML
函数接口:
```matlab
function elem = parseXML(filepath, varargin)
%parseXML 解析XML文件
%
% Syntax:
% elem = parseXML(filepath, mem_max)
%
% Params:
% - filepath [R] [string] xml文件路径
% - mem_max [O] [numeric] 给XmlElement预分配内存
%
% Return:
% - elem 解析出的XML对象
%
% Note: 暂时不支持解析带注释的XML文件
%
% Matlab Version: R2021b
```
XMLParser 是解析XML的核心类,parseXML 是调用它的一个接口函数。
**例子**
```matlab
filepath = 'test.xml';
% filepath = 'test2.xml';
tic
elem = parseXML(filepath, 10000);
toc
elem.print();
t_elem = elem.findChild('student');
t_elem.print();
```
### TODO
- [ ] findChild() 目前只支持查找第一个满足Tag名的结点
- [ ] XMLParser 目前不支持解析带注释的XML文件
- [ ] 由于需要频繁字符拼接,目前程序解析速度较慢
Matlab解析XML文件.rar
版权申诉
96 浏览量
2023-07-18
17:22:40
上传
评论
收藏 25KB RAR 举报
小码叔
- 粉丝: 4159
- 资源: 1181
最新资源
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- 基于JSP毕业设计-基于WEB操作系统课程教学网站的设计与实现(源代码+论文).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈