一、jaxp对xml的sax解析
sax的解析原理:读到xml文档的某部分内容,就会触发对应的事件处理代码。
sax的核心api:
1)通过SAXParserFactory创建对象,
2)再创建SAXParser对象
3)通过SAXParser对象得到XMLReader解析器
4)在XMLReader解析器中注册事件监听器(一般是创建一个类来继承defaultHandler类)
5)使用XMLReader的parse方法进行读取xml文件(参数一般为xml文件的路径)
ContentHandler接口的常用方法
startDocument():文档开始时触发
characters():读到文本内容时触发
参数1: ch 代表到目前为止读到的内容
参数2: start 代表目前内容的开始位置
参数3: length 代表目标内容的长度
二、 XPath的基本使用方法
XPath是一个很方便读取xml节点的插件
需要把XPath的支持包导入项目
jaxen-1.x-beta.jar
主要也就有两个核心的方法:
List list = document.selectNodes( "//foo/bar" ); 查询多个节点
Node node = document.selectSingleNode( "//foo/bar/author" ); 查询一个节点
xpath的常用语法:
/ 代表根(从根开始找)
// 所有子节点(不分层次)
* 代表通配所有的元素
[] 代表添加一些条件
@ 代表是选择的属性
text() 代表选择的是文本
dom解析 sax解析 的比较:
原理:一次性读取,构建dom树, 读取一点,解析一点,内存占用的小
内存占用的比较大
思想:面向对象的编程思想 基于事件驱动模式的编程思想
操作方式:DOM可以增删改查 sax只是做查询
执行的顺序:DOM可以任意读取, sax只能从前往后读,不能往回读
还可以往回读
三、Schema约束
1)schema支持的是名称空间
2)schema的语法是xml的语法
3)schema的约束文件以.xsd结尾
名称空间:
用于在xml文件中导入schema(xsd)文件的!而且在一个xml文件中可以使用多个名称导入多个schema约束
sax的解析原理:读到xml文档的某部分内容,就会触发对应的事件处理代码。
sax的核心api:
1)通过SAXParserFactory创建对象,
2)再创建SAXParser对象
3)通过SAXParser对象得到XMLReader解析器
4)在XMLReader解析器中注册事件监听器(一般是创建一个类来继承defaultHandler类)
5)使用XMLReader的parse方法进行读取xml文件(参数一般为xml文件的路径)
ContentHandler接口的常用方法
startDocument():文档开始时触发
characters():读到文本内容时触发
参数1: ch 代表到目前为止读到的内容
参数2: start 代表目前内容的开始位置
参数3: length 代表目标内容的长度
endDocument():文档结束时触发
二、 XPath的基本使用方法
XPath是一个很方便读取xml节点的插件
需要把XPath的支持包导入项目
jaxen-1.x-beta.jar
主要也就有两个核心的方法:
List list = document.selectNodes( "//foo/bar" ); 查询多个节点
Node node = document.selectSingleNode( "//foo/bar/author" ); 查询一个节点
xpath的常用语法:
/ 代表根(从根开始找)
// 所有子节点(不分层次)
* 代表通配所有的元素
[] 代表添加一些条件
@ 代表是选择的属性
text() 代表选择的是文本
dom解析 sax解析 的比较:
原理:一次性读取,构建dom树, 读取一点,解析一点,内存占用的小
内存占用的比较大
思想:面向对象的编程思想 基于事件驱动模式的编程思想
操作方式:DOM可以增删改查 sax只是做查询
执行的顺序:DOM可以任意读取, sax只能从前往后读,不能往回读
还可以往回读
三、Schema约束
1)schema支持的是名称空间
2)schema的语法是xml的语法
3)schema的约束文件以.xsd结尾
名称空间:
用于在xml文件中导入schema(xsd)文件的!而且在一个xml文件中可以使用多个名称导入多个schema约束
详细的可以参考文档,schema只做了解参考,不必去深究