主要内容

将XML文件导入到文档对象模型中

可以通过使用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文件中的每个项目对应于节点。您用于创建和访问节点的属性和方法,请遵循万维网联盟的标准。

例如,考虑以下示例XML文件:

 <! - 这是一个示例info.xml文件。- >   

文件中的信息映射到以下类型的DOM节点:

  • 元素节点- 对应标记名称。在里面info.xml.文件,这些标记对应于元素节点:

    • ProductInfo.

    • 列表

    • 项目清单

    • 标签

    • 回调

    • 图标

    在这种情况下列表元素是父母项目清单元素子节点。这ProductInfo.元素是根元素节点。

  • 文本节点—包含与元素节点关联的值。每个文本节点都是元素节点的子节点。例如,导入向导文本节点是第一个的孩子标签元素节点。

  • 属性节点- 包含与元素节点关联的名称和值对。例如,在第一个标签元素节点,颜色属性的名称是和吗蓝色的是它的价值。属性节点不是任何节点的父母或子项。

  • 评论节点- 在文件中包含文件中的其他文本<!——样品评论>

  • 文档节点—对应整个文件。使用文档节点上的方法来创建新的元素、文本、属性或注释节点。

使用MAXP PARSER读取XML文件

这个例子使用了一个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”。

使用读取XML文件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”。

也可以看看

|

相关的话题

外部网站