前端之家收集整理的这篇文章主要介绍了
01_xml&dom_sax_dom4j编程,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一、XML简介及语法: 1.XML:eXtensible Markup Language(可扩展标记语言) 2.产生原因:用来处理大量有关系的数据 3.作用: 1).用来系统传输数据 2).用来存储数据 3).作为软件的配置文件 4.xml语法: 1).文档声明: 注意:文档声明出现在xml的第一行第一列 <?xml version = "1.0" ?> version 版本号 version属性是必须的属性 encoding 编码集 可选 standalone 是否需要依赖其他的文档 yes/no 2).元素: 1'.元素:标签 标签的写法: <span></span> <span/> 标签的嵌套:必须正确的嵌套 xml有且只有一个根标签 2'.元素的命名规范: 区分大小写 不能以数字或_开头 不能以xml开头 元素名称的中间不能出现空格和冒号 3).属性: 一个标签可以有多个属性,每个属性都有自己的名称和取值 属性值一定要使用双引号或单引号引起来 定义属性时必须遵循与标签相同的命名规范 在xml中,标签属性代表的信息,可以通过子元素来描述 4).注释: <!-- 注释内容 --> 注释不能嵌套 注释不能出现在文档声明之前 5).特殊字符和CDATA区: 转义字符: < : &alt; > : > & : & " : " ' : ' 空格 : CDATA区:<![CDATA[ 普通文档 ]]> 6).处理指令(PI):用来指挥解析引擎如何解析xml文档内容 例:<?xml-stylesheet type="text/css" href="1.css"?> 7).配置文件: properties:键值对 xml:可以更好的描述层次关系,因为xml是可扩展的标记语言 二、xml的约束:DTD 和 Schema 1.DTD:文档类型定义: 编写步骤: 1).xml文档需要出现哪些标签、个数是多少 <!ELEMENT 元素名称 元素类型> 2).查询xml的元素类型是什么:简单or复杂 3).在xml中引入dtd 2.DTD引入方式: 1).文档内部: <!DOCTYPE 根标签 [ <!ELEMENT 元素名称 元素类型> ... ]> 2).文档外部: 本地:<!DOCTYPE 跟标签 SYSTEM "xxx.dtd"> 网络:<!DOCTYPE 根节点 PUBLIC "DTD名称" "DTD路径"> 3.DTD语法: 1).元素的定义: 1'.语法:<!ELEMENT 元素名称 元素类型> 2'.元素的类型: #PCDATA :可解析的字符数据 子元素: EMPTY:空元素 ANY:任意 3'.子元素出现的次数: + :一次或多次 * :0次或多次 ? :0次或一次 4'.子元素的顺序:,: 子元素出现必须按照顺序 | : 子元素出现是或关系 2).属性的定义: 1'.语法:<!ATTLIST 元素名称 属性名称 属性类型 属性约束> 2'.属性类型: CDATA:字符数据(字符串) 枚举:枚举类型 ID:标识的值是唯一的 3'.属性约束: #required :属性必须出现 #IMPLIED:属性是可选的 #FIXED:属性是固定值 默认值: 3).实体的定义: 语法:<!ENTITY 实体名称 实体值> 三、xml解析:(解析技术有多种,常用的DOM和SAX) 1.DOM:Document Object Model 文档对象模型 将XML一次性加载到内存中,形成一个树形结构 2.SAX:Simple API for XML.不需要将文档一次性加载到内存中,边读边解析,事件驱动方式 3.DOM和SAX的区别: 1).DOM一次性将文本加载到内存,形成树形结构,优点是方便进行增加、修改删除操作,缺点是如果文档非常大,容易导致内存溢出 2).SAX是边读边解析,不易导致内存溢出,不能做增加、修改、删除操作 4.Node:节点 所有的内容都是节点,包括元素、属性、文本、文档 5.Jaxp解析过程: 1).DOM解析: 1'.创建解析器工厂 2'.由解析器工厂来创建解析器 3'.通过解析器解析xml文档 4'.通过Document对象获取节点 2).SAX解析: 1'.创建解析器工厂 2'.由解析器工厂来创建解析器 3'.通过解析器解析xml文档--->绑定处理器 6.Dom4j解析过程: 解析过程: 1).获得Document对象 1'.通过读取xml文件,获得document对象 SAXReader reader = new SAXReader(); Document document = reader.read("xxx.xml"); 2'.解析xml形式的文本,获取document对象 Document document = DocumentHelper.parseText("<members></members>"); 3'.主动创建document对象 Document document = DocumentHelper.createDocument(); 2).通过document对xml文档进行CRUD解析操作 3).将文档写入xml文件:(XMLWriter、OutputFormat) XPath:方便查询XML的节点,dom4j支持XPath 原文链接:https://www.f2er.com/xml/299464.html