<新和更新功能…<前一 过去和未来文档>下一个> 简单的XML节点创建 发布的迈克尔·卡茨,2010年9月13日 (30天)| 65年视图0喜欢|17日评论 上次在我XML系列,我向您展示了如何使用xmlread在MATLAB环境下创建一个XML文档对象。我还承诺跟进,在关于如何使用文档对象的更多信息。今天,我想向您展示如何从头开始创建一个DOM,然后建立一个简单的XML文档。要做到这一点,我将使用规范化地址簿实例作为样本XML文档。 第一步是创建一个新节点。要做到这一点,我们需要使用Java方法com.mathworks.xml.XMLUtils.createDocument ()由于MATLAB没有原生XML对象。在这个示例中,我们创建一个顶层(“根”或“文档”)节点AddressBook。使用一个参数的版本xmlwrite命令窗口将显示xml文档。 docNode = com.mathworks.xml.XMLUtils.createDocument (“AddressBook”);xmlwrite (docNode) ans = < ?xml version = " 1.0 " encoding = " utf - 8 " ?> < AddressBook / > 现在我有文档元素,我想填充它的子节点。文档对象也是工厂的新节点。因此我每次创建一个新节点,我从我的这样做docNode对象。还请注意,我不能直接将子元素节点附加到文档,我得第一个电话geDocumentElement文档的根元素节点。都有点让人困惑,但我相信它是有意义的原始设计者的Apache Xerces DOM(我们使用的实现)。 在下一步中,我创建了一个条目元素代表一个人在我的通讯录,并将它作为一个孩子附加到根节点。 entry_node = docNode.createElement (“入口”);docNode.getDocumentElement.appendChild (entry_node);xmlwrite (docNode) ans = < ?xml version = " 1.0 " encoding = " utf - 8 " ?> < AddressBook > <条目/ > < / AddressBook > 现在有一个条目在地址本中,我将创建数据元素。为此我创建新元素节点,并将这些附加到我的条目节点。我还创建文本节点来表示这些元素的文本数据。例如,我创建了一个“的名字”节点的人的名字,把“友好Mathworker”(同事)作为文本节点的子的名字元素。这样做让我建立XML树状结构。除了文本节点,我们可以创建属性节点(参见下一节),以及CDATA,评论,和其他类型的XML节点。 添加的名字,电话号码 name_node = docNode.createElement (“名字”);name_text = docNode.createTextNode (“友好的j . Mathworker”);name_node.appendChild (name_text);entry_node.appendChild (name_node);phone_number_node = docNode.createElement (“PhoneNumber”);phone_number_text = docNode.createTextNode (“(508)647 - 7000”);phone_number_node.appendChild (phone_number_text);entry_node.appendChild (phone_number_node);xmlwrite (docNode) ans = < ?xml version = " 1.0 " encoding = " utf - 8 " ?> < AddressBook > <条目> <名称>友好j . Mathworker < /名称> < PhoneNumber > (508) 647 - 7000 < / PhoneNumber > < /条目> < / AddressBook > 最后一步,我要一个地址添加到这个人的条目。除了一个简单的文本节点,我添加了一些属性使用两种不同的方法。首先,我使用方便setAttribute(名称、值)表明这种方法地址是类型”工作”。在第二种情况下,我使用更加正式的节点结构创建一个“hasZip"属性表明,我离开了我的公司的地址的邮政编码。请注意,此实现的xmlwrite按字母顺序排序的属性显示该文档的时候,而元素节点留在他们附加的顺序。 address_node = docNode.createElement (“地址”);address_node.setTextContent (“马3苹果希尔博士,纳蒂克”)%直接设置一个属性address_node.setAttribute (“类型”,‘工作’);entry_node.appendChild (address_node);%或创建一个节点的属性has_zip_attribute = docNode.createAttribute (“hasZip”);has_zip_attribute.setNodeValue (“不”);address_node.setAttributeNode (has_zip_attribute);xmlwrite (docNode) ans = < ?xml version = " 1.0 " encoding = " utf - 8 " ?> < AddressBook > <条目> <名称>友好j . Mathworker < /名称> < PhoneNumber > (508) 647 - 7000 < / PhoneNumber > <地址hasZip = "不" type = "工作" > 3苹果希尔博士,纳蒂克马< /地址> < /条目> < / AddressBook > 下次我关于XML的帖子,我将描述如何导航一个DOM找到感兴趣的数据。 | 你现在下面这篇博客 你将看到在你更新活动提要。 你可以接收电子邮件,取决于你通知偏好。 类别: Java <新和更新功能…<前一 过去和未来文档>下一个> 另请参阅 XML和MATLAB:导航树 博客 更多的XML和MATLAB:控制XML输出 博客 在MATLAB中使用XML 博客 XML2Structure(文件名) myXMLwrite MXML 评论 留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。