XML 的文件声明:

$xmlDecl=&$xmlDoc->createProcessingInstruction('xml','version="1.0"');$xmlDoc->appendChild($xmlDecl);

在这我们可以看到声明信息也被当作是一个子节点做处理,也算是合理的定义。但这里我们可以发现 createProcessingInstruction() 方法存在一个明显的缺点——只有两个声明参数(通常我们可能还会定义编码之类的 XML 声明信息)。幸运的是我们使用的是一个开源的库,也就是说我们可以轻易地将它修改定制以满足要求。如果你实在需要帮助来修改这个特定的方法以添加足够的 XML 文件声明信息(如编码等),我将在本系列的最后一篇中加以介绍。

让我们回到正题。完成 XML 文件声明部分后,我们在 XML 文件内容中看到的是“audio”标签。它是这个 XML 文件中的根元素(根节点)。让我们来创建这部分:

$rootElement=&$xmlDoc->createElement('audio');$xmlDoc->appendChild($rootElement);

你不需要担心标签关闭的问题,DomIt! 已经完全替你做好了。利用类似的方法,我们将建立“audio”的子节点——“file”元素;在“file”元素内,还包含了几个姊妹元素“track”、“caption”和“record”及它们的文字内容。既然创建它们时都要用到一个主要的方法 appendChild(),我们可以归纳到一起说:

// "file" 元素$fileElement=&$xmlDoc->createElement('file');

// "track" 元素$trackElement=&$xmlDoc->createElement('track');// 增加"track"元素的文本内容$trackElement->appendChild($xmlDoc->createTextNode('音乐文件位置'));// 添加到"file"元素中去$fileElement->appendChild($trackElement);

// "caption" 元素,其他同"track"$captionElement=&$xmlDoc->createElement('caption');$captionElement->appendChild($xmlDoc->createTextNode('音乐文件标题'));$fileElement->appendChild($captionElement);

// "record" 元素,其他同"track"$recordElement=&$xmlDoc->createElement('record');$recordElement->appendChild($xmlDoc->createTextNode('音乐录制信息'));$fileElement->appendChild($recordElement);

就像之前说的,核心部分是 appendChild() 方法。在不同的实例上调用它就可以起到不同的作用(这就是面向对象)。如果你用 appendChild() 将“track”元素添加进“audio”,那“file”和“track”就变成姊妹节点了。

完成创建所有节点的工作后,我们需要将这些内容添加进“audio”元素,或许你还想将最后的内容输出到屏幕上查看、以及保存到真正的 XML 文件中去:

// 添加所有"file"元素里的内容到"audio"里$rootElement->appendChild($fileElement);// 在屏幕上(网页)打印出来echo$xmlDoc->toNormalizedString(true);// 将文档实例保存进一个真正的 XML 文件中$xmlDoc->saveXML('audio.xml',true);

然后在屏幕上(浏览器中),你可以看到:

<?xmlversion="1.0"?><audio><file><track>音乐文件位置</track><caption>音乐文件标题</caption><record>音乐录制信息</record></file></audio>

与给我的文件内容一模一样。这就是《用 DomIt! 做简单的 XML 处理工作》第一部分的结尾。下一篇,我将谈谈如何修改我们刚刚创建的 XML 文件,包括对内容的添加、删除和编辑。

哦,我还忘了给你们一个 DomIt! 明显的下载链接(我知道可能你们很多人已经 Google 出来了):http://sourceforge.net/projects/domit-xmlparser/

转载于:https://www.cnblogs.com/Lovepanda/archive/2010/01/20/1652642.html

用 DomIt! XML 处理工作相关推荐

  1. jquery ajax xml attribute,获得jQuery ajax和asp.net webmethod xml响应工作

    我有一个asp.net WebMethod,它返回一个XmlDocument对象.我可以使用jquery ajax成功调用该方法,但似乎无法使函数成功(服务器端webmethod使用正确的参数调用,但 ...

  2. Java EE 课程作业(Fifth)-- XML:定义 用途 工作原理及未来xml

    一.XML定义: XML即可扩展标记语言(eXtensible Markup Language).标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等.如何定义这些标 ...

  3. java四种xml_Java中四种XML解析技术

    转载自 http://www.it.com.cn/f/edu/053/27/93819.htm 在平时工作中,难免会遇到把 XML 作为数据存储格式.面对目前种类繁多的解决方案,哪个最适合我们呢?在这 ...

  4. 了解女友的心还不如了解Python之在Python中解析和修改XML

    2021年12月15日 10:14 ·  阅读 30 摘要: 工作中我们时常需要解析用不同语言编写的数据.Python 提供了许多库来解析或拆分用其他语言编写的数据.在这篇 Python XML 解析 ...

  5. DOM4J_Xpath的XML操作总结

    2019独角兽企业重金招聘Python工程师标准>>> 1.DOM4J简介 DOM4J是 dom4j.org 出品的一个开源 XML 解析包.DOM4J应用于 Java 平台,采用了 ...

  6. Android网络之数据解析----SAX方式解析XML数据

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  7. 利用XML实现通用WEB报表打印(转载)

    原文地址: http://www.microsoft.com/china/community/Column/65.mspx 利用XML实现通用WEB报表打印 卢彦 方案适用性 . 1. 远程数据打印. ...

  8. Android--解析XML之SAX

    前言 既然要说XML解析,那么先来聊聊什么是XML.XML,可扩展标记语言 (Extensible Markup Language) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义 ...

  9. JSON 是什么?它能带来什么?它和 XML 比较?

    一.JSON是什么? 有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作.它就是JSON. 数据格式比较简单, 易于读写, 格式都是 ...

最新文章

  1. 残缺的完美 送给飘
  2. Activity启动模式详解
  3. docker简要学习
  4. 给初恋女孩的信....
  5. adaboost和GBDT的区别以及xgboost和GBDT的区别
  6. mysql行复制_MySQL复制(一)--复制概述
  7. python安装后无法运行任何软件_为啥我按照python安装教程,总说无法启动此程序,因为计算机中丢失?...
  8. logistic 回归_具有Logistic回归的优秀初学者项目
  9. 在js中if条件为null/undefined/0/NaN/表达式时,统统被解释为false,此外均为true
  10. 漫画:什么是JVM的垃圾回收?
  11. C++自学笔记(3)
  12. SoapUI Pro Project Solution Collection-DataSource(jdbc,excel)
  13. 华夏常春藤_这是您可以立即免费在线学习的450个常春藤盟军课程
  14. DZ论坛php代码,Discuz!代码大全 - Discuz!-安装使用 - Discuz! 官方站 - Powered by Discuz!...
  15. Hadoop版本区别Hadoop组成
  16. MYsql的数学函数
  17. MCDC — 修正判定条件覆盖
  18. 最GIS应用案例——告诉你什么是GIS!
  19. 这不就是微信朋友圈屏蔽功能吗?推特现在才做出来未免太迟了吧
  20. 南通市户口迁移(市外)

热门文章

  1. Python小游戏(XO大战)
  2. Linux配置环境变量source时报错:export `=‘ not a valid identifier的一般原因
  3. 雷林鹏分享:CSS 链接
  4. Flutter - 弹出底部菜单Show Modal Bottom Sheet
  5. 虚拟机安装CentOS,网络配置
  6. 树状数组之区间修改单点查询
  7. 设置Hadoop的 dataNode的单个Map的内存配置
  8. 关系数据库中,表中的每行就是一个对象
  9. C# string类型和byte[]类型相互转换
  10. Objective--C三大特性:封装,继承,多态(零碎笔记)