1.什么是xml?
xml 是 (eXtensible Markup Language,可扩展标记语言);
2.xml有什么用?
xml设计宗旨是表示数据,html是用来显示数据的,目前的版本有1.0,在实际开发中,xml常常以程序的配置文件存在。
注意: xml没有预定义的标签,html中的都是预定义标签,xml可以自定义标签。
3.xml语法
文档声明 必须在文档的第一行
<?xml version="1.0" encoding="utf-8" ?>
元素 有且仅能有一个root结点,xml文档不会忽略空格和换行,严格区分大小写
元素的属性 属性取值一定要用双引号或单引号 引起来
注释 <!-- 和html注释一样 -->
CDTAT区 (CD,Charactor Data)显示的都是文本
<![CDTAT[
文本内容
]]>
特殊字符 < < , > >
处理指令 用来指挥软件如何解析xml
4.两种xml约束
DTD (Document Type Definition,文档类型限定)
作用:约束xml文档的书写规范
注意:当保存DTD文件时必须按utf-8的格式保存。
如何导入文件来约束xml文档。
这儿要分两种情况:
在本地的dtd文件:<!DOCTYPE 根元素名称 SYSTEM "dtd文件的路径">
在网络上的dtd文件:<!DOCTYPE 根元素名称 PUBLIC "dtd文件的名称" "dtd的url路径">
dtd的扩展名是什么? 就是.dtd
dtd语法:
Schema
其扩展名是 .xsd
什么是名称空间。
在编写完成XML Schema 文档完成后,需要要为文档中的元素绑定到一个RUI上,Schema技术用一个术语---名称空间。以后就可以
通过这个uri告诉解析器,这些元素来自哪里,被谁约束。
怎么根据Schema文档写xml文件。可分为四步
-------先找到根结点
----------找到对应schema文档中声明的名称空间
-------------SchemaLocation 是说 名称空间与哪个文件对应
---------------SchemaLocation 又来自哪里呢?来自远方
Schema语法
注意:Schema约束正在逐步替代DTD。
5.常用的三种解析xml方式
XML DOM 解析
解析原理:
xml DOM 是 w3c的标准,xml dom 解析与html dom 解析 很类似,它们都会将对应某个文件的全部数据加载到内存中,在内存中映射出一根树的结构。
其中的根结点也document对象。
想要解析要对xml,具体怎么实现?
------------首先必须先得到document对象
首先通过DocuemntBuilderFactory类得到工厂实例
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
再通过这个工厂实例创建DocumentBuilder对象
DocumentBuilder builder = fac.newDocumentBuilder();
通过builder与想要解析xml文件相关联得到Document对象
Document document = builder.parse("xxxxxx");
注意:xml 解析和 sax 解析 已经被集成到了java se中了。可以直接使用,不需要导入外部的包,而demo4j则需要导包。
SAX解析
sax解析不是w3c的标准,它是对xml 文件 一行一行进行解析的。
sax解析原理:
sax解析是基于事件的驱动进行解析的。
sax解析xml的具体怎么实现?
首先肯定是得到工厂实例
SAXParserFactory factory =SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.setContentHandler();设置事件的处理方式,接受的是ContentHandler接口类型,也可以是extends DefaultHandler(适配器)。
parser.parse("要解析的xml文件");
demo4j解析:
demo4j是一个开源组织的东西,所以需要先下载对应的api和文档。
demo4j集成了xml dom 和 sax的优点,目前很多东西都在用demo4j进行解析
xml 是 (eXtensible Markup Language,可扩展标记语言);
2.xml有什么用?
xml设计宗旨是表示数据,html是用来显示数据的,目前的版本有1.0,在实际开发中,xml常常以程序的配置文件存在。
注意: xml没有预定义的标签,html中的都是预定义标签,xml可以自定义标签。
3.xml语法
文档声明 必须在文档的第一行
<?xml version="1.0" encoding="utf-8" ?>
元素 有且仅能有一个root结点,xml文档不会忽略空格和换行,严格区分大小写
元素的属性 属性取值一定要用双引号或单引号 引起来
注释 <!-- 和html注释一样 -->
CDTAT区 (CD,Charactor Data)显示的都是文本
<![CDTAT[
文本内容
]]>
特殊字符 < < , > >
处理指令 用来指挥软件如何解析xml
4.两种xml约束
DTD (Document Type Definition,文档类型限定)
作用:约束xml文档的书写规范
注意:当保存DTD文件时必须按utf-8的格式保存。
如何导入文件来约束xml文档。
这儿要分两种情况:
在本地的dtd文件:<!DOCTYPE 根元素名称 SYSTEM "dtd文件的路径">
在网络上的dtd文件:<!DOCTYPE 根元素名称 PUBLIC "dtd文件的名称" "dtd的url路径">
dtd的扩展名是什么? 就是.dtd
dtd语法:
Schema
其扩展名是 .xsd
什么是名称空间。
在编写完成XML Schema 文档完成后,需要要为文档中的元素绑定到一个RUI上,Schema技术用一个术语---名称空间。以后就可以
通过这个uri告诉解析器,这些元素来自哪里,被谁约束。
怎么根据Schema文档写xml文件。可分为四步
-------先找到根结点
----------找到对应schema文档中声明的名称空间
-------------SchemaLocation 是说 名称空间与哪个文件对应
---------------SchemaLocation 又来自哪里呢?来自远方
Schema语法
注意:Schema约束正在逐步替代DTD。
5.常用的三种解析xml方式
XML DOM 解析
解析原理:
xml DOM 是 w3c的标准,xml dom 解析与html dom 解析 很类似,它们都会将对应某个文件的全部数据加载到内存中,在内存中映射出一根树的结构。
其中的根结点也document对象。
想要解析要对xml,具体怎么实现?
------------首先必须先得到document对象
首先通过DocuemntBuilderFactory类得到工厂实例
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
再通过这个工厂实例创建DocumentBuilder对象
DocumentBuilder builder = fac.newDocumentBuilder();
通过builder与想要解析xml文件相关联得到Document对象
Document document = builder.parse("xxxxxx");
注意:xml 解析和 sax 解析 已经被集成到了java se中了。可以直接使用,不需要导入外部的包,而demo4j则需要导包。
SAX解析
sax解析不是w3c的标准,它是对xml 文件 一行一行进行解析的。
sax解析原理:
sax解析是基于事件的驱动进行解析的。
sax解析xml的具体怎么实现?
首先肯定是得到工厂实例
SAXParserFactory factory =SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.setContentHandler();设置事件的处理方式,接受的是ContentHandler接口类型,也可以是extends DefaultHandler(适配器)。
parser.parse("要解析的xml文件");
demo4j解析:
demo4j是一个开源组织的东西,所以需要先下载对应的api和文档。
demo4j集成了xml dom 和 sax的优点,目前很多东西都在用demo4j进行解析