可以通过使用matlab.io.xml.dom.parser.
对象或者XMLREAD.
功能。
这matlab.io.xml.dom.parser.
类属于MATLAB®XML处理的API(MAXP)。当您使用MAXP时解析器
读取XML文件的对象,结果DOM文档节点表示为matlab.io.xml.dom.document.
目的。有关您可以用来使用的类列表文档
对象,参见matlab.io.xml.dom.
.您不需要Java®软件使用MAXP类。
使用。创建的DOM文档节点对象XMLREAD.
,您必须使用Java API进行XML处理(JAXP)。有关JAXP方法和属性的列表,请参阅org.w3c.dom
包描述在https://docs.oracle.com/javase/7/docs/api
.
在文档对象模型中,XML文件中的每个项目对应于节点。您用于创建和访问节点的属性和方法,请遵循万维网联盟的标准。
例如,考虑以下示例XML文件:
<! - 这是一个示例info.xml文件。- >
文件中的信息映射到以下类型的DOM节点:
元素节点- 对应标记名称。在里面info.xml.
文件,这些标记对应于元素节点:
ProductInfo.
列表
项目清单
标签
回调
图标
在这种情况下列表
元素是父母项目清单
元素子节点。这ProductInfo.
元素是根元素节点。
文本节点—包含与元素节点关联的值。每个文本节点都是元素节点的子节点。例如,导入向导
文本节点是第一个的孩子标签
元素节点。
属性节点- 包含与元素节点关联的名称和值对。例如,在第一个标签
元素节点,颜色
属性的名称是和吗蓝色的
是它的价值。属性节点不是任何节点的父母或子项。
评论节点- 在文件中包含文件中的其他文本<!——样品评论>
.
文档节点—对应整个文件。使用文档节点上的方法来创建新的元素、文本、属性或注释节点。
这个例子使用了一个matlab.io.xml.dom.parser.
对象读取info.xml.
文件到一个matlab.io.xml.dom.document.
节点。该文件包含几个项目清单
元素。每个项目清单
元素包含A.标签
和回调
元素。该示例使用MAXP方法查找文本内容回调
对应于的元素标签
具有文本内容图工具
.
将文件读入文档
目的。
InfoFile = fullfile(matlabroot,“工具箱/ matlab /一般/ info.xml”);Infolabel =.“绘图工具”;infocbk ='';itemFound = false;进口matlab.io.xml.dom。*xDoc = parseFile(解析器,infoFile);
找到所有的项目清单
通过致电的元素getElementsByTagname.
方法,返回amatlab.io.xml.dom.nodelist.
目的。
allListItems = getElementsByTagName (xDoc,“列”);
对于每一个人项目清单
元素,比较文本标签
元素到图工具
.当您找到正确的标签时,请获取回调
文本。访问该元素诺克莱斯特
对象,使用节点
方法,使用基于一个基于一个索引的方法。或者,您可以使用物品
方法,使用基于零的索引。
length = AllListItems.Length;为了i=1:length thisListItem = node(alllistitem,i);childNode = getFirstChild (thisListItem);而〜isempty(shimnode)%过滤掉文本,注释和处理指令。如果isa (childNode“matlab.io.xml.dom.Element”)%假设每个元素都有一个文本子childtext = getData(getfirstchild(shimnode));开关getTagName (childNode)案件'标签'ItemFound = StrcMP(儿童提示,INFOLABEL);案件'打回来'Infocbk = ChildText;结尾结尾childNode = getNextSibling (childNode);结尾如果ItemFound.打破别的infocbk ='';结尾结尾
显示结果。
fprintf(“项目“%s”有一个“%s”的回调。\n”,Infolabel,Infocbk);
项目“Plot Tools”的回调为“figure;plottools”。
XMLREAD.
这个例子用途XMLREAD.
阅读info.xml.
for for xml处理方法中的doM文档节点和Java API中的文件,以查找文本内容回调
对应于的元素标签
具有文本内容图工具
.
InfoFile = fullfile(matlabroot,“工具箱/ matlab /一般/ info.xml”);Infolabel =.“绘图工具”;infocbk ='';itemFound = false;xDoc = xmlread (infoFile);allListItems = getElementsByTagName (xDoc,“列”);%项目列表索引是基于零的。长度= allListItems.getLength-1;为了i=0:length thisListItem = item(alllisttitem,i);childNode = getFirstChild (thisListItem);而〜isempty(shimnode)%过滤掉文本,注释和处理指令。如果shildnode.getNodeType == shildnode.element_node.%假设每个元素都有一个org.w3c.dom.text子childtext = char(shildnode.getfirstchild.getdata);开关char (childNode.getTagName)案件'标签'ItemFound = StrcMP(儿童提示,INFOLABEL);案件'打回来'Infocbk = ChildText;结尾结尾childNode = getNextSibling (childNode);结尾如果ItemFound.打破别的infocbk ='';结尾结尾fprintf(“项目“%s”有一个“%s”的回调。\n”,Infolabel,Infocbk);
项目“Plot Tools”的回调为“figure;plottools”。
matlab.io.xml.dom.document.
|XMLREAD.