用 DomIt! 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 处理工作相关推荐
- jquery ajax xml attribute,获得jQuery ajax和asp.net webmethod xml响应工作
我有一个asp.net WebMethod,它返回一个XmlDocument对象.我可以使用jquery ajax成功调用该方法,但似乎无法使函数成功(服务器端webmethod使用正确的参数调用,但 ...
- Java EE 课程作业(Fifth)-- XML:定义 用途 工作原理及未来xml
一.XML定义: XML即可扩展标记语言(eXtensible Markup Language).标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等.如何定义这些标 ...
- java四种xml_Java中四种XML解析技术
转载自 http://www.it.com.cn/f/edu/053/27/93819.htm 在平时工作中,难免会遇到把 XML 作为数据存储格式.面对目前种类繁多的解决方案,哪个最适合我们呢?在这 ...
- 了解女友的心还不如了解Python之在Python中解析和修改XML
2021年12月15日 10:14 · 阅读 30 摘要: 工作中我们时常需要解析用不同语言编写的数据.Python 提供了许多库来解析或拆分用其他语言编写的数据.在这篇 Python XML 解析 ...
- DOM4J_Xpath的XML操作总结
2019独角兽企业重金招聘Python工程师标准>>> 1.DOM4J简介 DOM4J是 dom4j.org 出品的一个开源 XML 解析包.DOM4J应用于 Java 平台,采用了 ...
- Android网络之数据解析----SAX方式解析XML数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- 利用XML实现通用WEB报表打印(转载)
原文地址: http://www.microsoft.com/china/community/Column/65.mspx 利用XML实现通用WEB报表打印 卢彦 方案适用性 . 1. 远程数据打印. ...
- Android--解析XML之SAX
前言 既然要说XML解析,那么先来聊聊什么是XML.XML,可扩展标记语言 (Extensible Markup Language) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义 ...
- JSON 是什么?它能带来什么?它和 XML 比较?
一.JSON是什么? 有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作.它就是JSON. 数据格式比较简单, 易于读写, 格式都是 ...
最新文章
- 残缺的完美 送给飘
- Activity启动模式详解
- docker简要学习
- 给初恋女孩的信....
- adaboost和GBDT的区别以及xgboost和GBDT的区别
- mysql行复制_MySQL复制(一)--复制概述
- python安装后无法运行任何软件_为啥我按照python安装教程,总说无法启动此程序,因为计算机中丢失?...
- logistic 回归_具有Logistic回归的优秀初学者项目
- 在js中if条件为null/undefined/0/NaN/表达式时,统统被解释为false,此外均为true
- 漫画:什么是JVM的垃圾回收?
- C++自学笔记(3)
- SoapUI Pro Project Solution Collection-DataSource(jdbc,excel)
- 华夏常春藤_这是您可以立即免费在线学习的450个常春藤盟军课程
- DZ论坛php代码,Discuz!代码大全 - Discuz!-安装使用 - Discuz! 官方站 - Powered by Discuz!...
- Hadoop版本区别Hadoop组成
- MYsql的数学函数
- MCDC — 修正判定条件覆盖
- 最GIS应用案例——告诉你什么是GIS!
- 这不就是微信朋友圈屏蔽功能吗?推特现在才做出来未免太迟了吧
- 南通市户口迁移(市外)
热门文章
- Python小游戏(XO大战)
- Linux配置环境变量source时报错:export `=‘ not a valid identifier的一般原因
- 雷林鹏分享:CSS 链接
- Flutter - 弹出底部菜单Show Modal Bottom Sheet
- 虚拟机安装CentOS,网络配置
- 树状数组之区间修改单点查询
- 设置Hadoop的 dataNode的单个Map的内存配置
- 关系数据库中,表中的每行就是一个对象
- C# string类型和byte[]类型相互转换
- Objective--C三大特性:封装,继承,多态(零碎笔记)