# Matlab-XML-Parser **Repository Path**: iam002/matlab-xml-parser ## Basic Information - **Project Name**: Matlab-XML-Parser - **Description**: Matlab解析XML文件 - **Primary Language**: Matlab - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-14 - **Last Updated**: 2023-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MATLAB XML Parser ### 接口说明 #### XMLElement XMLElement 结构体包含以下字段,分别对应XML - tag 字符数组, 为XML结点名 - content 字符数组,XML结点内容 - attribute 结构体,存放结点属性 - children 数组,存放子节点 ``` ... ... content ``` **例子** ```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文件 - [ ] 由于需要频繁字符拼接,目前程序解析速度较慢