]]>
外)例子
<?xml version="1.0" encoding="UTF-8" ?><students><student><code><!--如果希望把某些字符串当做普通文本使用,就用CDATA括起来--><![CDATA[<script data-compress=strip>function h(obj){alert("一段js代码");}</script>]]></code></student></students>
3.转义字符对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理
文章插图
例子
<?xml version="1.0" encoding="UTF-8" ?><students><student><name>jack</name><age>10</age><gender>男</gender><!--转义字符表示一些特殊的字符--><resume>年龄<>&</resume></student></students>
- 小结:
遵循如下规则的xml文档称为格式正规的xml文档:
- xml声明语句
<?xml version="1.0" encoding="UTF-8" ?>
- 必须有且仅有一个根元素
- 标记区分大小写
- 属性值用引号
- 标记成对
- 空标记关闭
- 元素正确嵌套
- xml技术原理
DOM (Document Object Model,文档对象模型)定义了访问和操作文档的标准方法 。
- 不管是html文件还是xml文件,都是标记型文档,都可以使用w3c组织制定的dom技术来解析
- document对象表示的是整个文档(可以是html文档,也可以是xml文档)
- DOM 把 XML 文档作为树结构来查看 。能够通过 DOM 树来访问所有元素 。可以修改或删除它们的内容,并创建新的元素 。元素,它们的文本 , 以及它们的属性,都被认为是节点
- xml解析技术介绍
【day08-XML】早期 JDK 为我们提供了两种xml的解析技术:DOM和Sax
- dom解析技术是W3C组织制定的,而所有的编程语言都对这个解析技术使用了自己语言的特点进行实现 。Java对dom技术解析也做了实现
- sun公司在JDK5版本对dom解析技术进行升级:SAX(Simple API for XML)解析,它是以类似事件机制通过回调告诉用户当前正在解析的内容 。是一行一行地读取xml文件进行解析的,不会创建大量的dom对象 。所以它在解析xml的时候,在性能上由于Dom解析
这两种技术已经过时,简单了解即可
- 第三方的XML解析技术
- jdom在dom基础上进行了封装
- dom4j 又对 jdom进行了封装
- pull主要用在Android手机开发 , 跟sax非常类似,都是事件机制解析xml文件
- dom4j是一个简单、灵活的开放源代码的库(用于解析/处理xml文件) 。dom4j是由早期开发JDOM的人分离出来后独立开发的 。
- 与JDOM不同的是,dom4j使用接口和抽象基类,虽然dom4j的API相对要复杂一些,但他提供了比JDOM更好的灵活性
- Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点 。现在很多软件采用的dom4j
- 使用dom4j开发 , 需要下载dom4j对象的jar文件
dom4j的jar包下载地址(内有使用案例):dom4j
4.3dom4j获得document对象的方式
开发dom4j要导入dom4j的jar包DOM4j中 , 获得document对象的方式有三种:
- 读取XML文件 , 获得document对象
SAXReader reader = new SAXReader();//创建一个解析器Document document = reader.read(new File("src/input.xml"));//XML Document
- 解析XML形式的文本 , 得到document对象
String text = "<members></members>";//直接对一个字符串的xml文本进行解析Document document = DocumentHelper.parseText(text);
- 主动创建document对象
Document document = DocumentHelper.createDocument();//创建根节点Element root = document.addElement("members");
dom4j应用实例-读取XML文件,获得document对象
- 使用dom4j对students.xml文件进行增删改查
- 重点讲解查询(遍历和指定查询)
- xml增删改使用少,作为拓展,给出案例
- 引入dom4j的依赖的jar包
推荐阅读
- 华为nova9pro上市时间及价格_华为nova9pro官方最新曝光
- 微信支付v3接口的 官方 Java SDK
- .net 温故知新:【8】.NET 中的配置从xml转向json
- MySQL的下载、安装、配置
- 苹果13上市时间与价格_苹果13上市时间官方价格
- 荣耀50多久上市_荣耀50什么时候上市
- 【pytest官方文档】解读-开发可pip安装的第三方插件
- 华为台式电脑官网报价及图片_华为台式电脑官方售价是多少
- cf改名怎么改(cf被官方强制改名)
- 华为mate50发布时间确定_华为mate50官方首曝