中软Java8月16日学习笔记之xml
2016-08-21 14:28
453 查看
XML是EXtensible Markup Language的缩写
可扩展的标记性语言
<Schools>
<school name="昌平一中">
<class name="java-1班" stunum="56">
<student> </student>
<device> </device>
</class>
<class name="java-2班" stunum="50">
<student> </student>
<device> </device>
</class>
</school>
<school name="北京四中">
</school>
<school> </school>
</Schools>
HTML : Hyperlink make language
XML与HTML之间的关系:
A、 XML包含HTML -------???
B、 XML是对HTML的一个补充 -------???
HTML是在网络通信中,传递的含有展示样式的数据。这些数据由浏览器解释执行;
XML可以应用于各行各业,甚至是任何地方
XML的功能远远大于HTML
XML的解析使用DOM、SAX两个接口
HTML是有容错性的,所以它不是标准的XML,也不能使用DOM和SAX解析HTML
XML是大小写敏感的,HTML不敏感
小结:HTML是基于XML规范下的,在Internet上传输并展现数据的一种具体应用;
XML的重要特性:
1. 可扩展 (每个节点或元素都可以自由的扩展)
2. 标记性语言
C++ VB JAVA等都是编译性语言
HTML 和 XML 是不需要编译的
如何执行标记性语言?
C++等编译性语言,执行靠CPU
JAVA等半编译语言,执行靠虚拟机的解释
HTML等标记性语言,执行靠浏览器等进行解释
XML也是标记性语言: 1、先约定好XML标签的含义
2、写解释器去解释执行相应的XML文件
3. XML最重要的体现是数据的载体
其它数据载体: 如数据库、文件、磁盘、光盘
XML可以完全替代数据库,作为数据载体
4.XML不仅是数据的载体,而且可以描述数据的格式
XML使用DTD或者Schema后就是自描述的语言--------------------像数据库的表结构
举例:学生表会有表机构 (姓名、年龄、性别、身高、入学成绩)
会有多名学生的具体数据 (张三、21、男、176、620)
5. DTD或者Schema是XML的结构描述,而且他们本身也符合XML规范
6. XML必须要求格式良好,需要进行格式校验 (有根、成对匹配等)
7. XML便于数据承载和数据交换。尤其是在跨平台环境下的数据交换,优势明显 ----- 主要用途
大企业中有非常多的业务子系统,在同一个企业中,数据和业务一定会有交叉,这时就需要数据交换
系统之间的数据交换模式:
1. Web Service (数据格式是XML的,WSDL)
2. XML文件
XML文档中的基本信息:
1、 声明
<?xml version=“1.0” encoding=“GB2312”?>
2、根元素
3、子元素
4、tag 标签项
5、 节点 Node (XML文档是树形)
6、 attribute 元素的属性信息(按照对象的角度看)
7、 <!-- 这是一个注释 -->
8、 <![CDATA[ ...Anything can go here... ]]>
XML使用 Document Type Definition (DTD) 或者 XML Schema 描述数据
XML文件的解析方式:
DOM(Document object model ) , SAX
DOM的特点: 把整个XML文档,一次性的读入内存,生成org.w3c.dom 接口 Document对象
document对象的数据组织形式是树形
可以使用DOM中的方法反复读取document中的内容(正序、反序)
可以使用DOM中的方法编辑document中的元素
缺陷:当读取大文件时,会出现很大的性能障碍
SAX: DefaultHandler
读取XML文件,采用事件机制 (observe模式,观察者,发布/订阅)
void startDocument() 接收文档开始的通知
void endDocument() 接收文档结束的通知
void startElement(String uri, String localName, String qName, Attributes attributes) 接收元素开始的通知
void endElement(String uri, String localName, String qName) 接收元素结束的通知。
void characters(char[] ch, int start, int length) 接收元素中字符数据的通知
DOM解析:
Document-->> NodeList getElementsByTagName(String tagname)
按文档顺序返回包含在文档中且具有给定标记名称的所有 Element 的 NodeList
Node-->> NodeList getChildNodes() 包含此节点的所有子节点的 NodeList。
if(nd.getNodeType() == Node.ELEMENT_NODE)
{
}
org.w3c.dom 接口 Element:
String getAttribute(String name) 通过名称获得属性值
String getTextContent() 此属性返回此节点及其后代的文本内容
练习:
用XML文件配置数据库的连接信息:dbUrl, dbDriver,username,password
用DOM模式读取这个文件,并设置成单例模式
![](http://img.blog.csdn.net/20160821144244477?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
<!DOCTYPE copyright [
<!ENTITY copyright "Copyright 2001, Ajie. All rights reserved"
]
>
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE copyright [
<!ENTITY copyright "Copyright 2001, Ajie. All rights reserved">
]>
<myfile>
<title>XML</title>
<author>ajie</author>
<email>ajie@aolhoo.com</email>
<date>20010115</date>
©right;
</myfile>
//Enity外部引用示例
myenity.dtd
<?xml version="1.0" ?>
<!ENTITY writer "pccw.">内部entity
<!ENTITY copyright "china">
<!ENTITY frame SYSTEM "myentity01.xml"> 外部的entity引用myentity01.xml
外部的一个myentity01.xml
<?xml version="1.0" ?>
<stu>
<name>outman</name>
<age>15</age>
</stu>
可扩展的标记性语言
<Schools>
<school name="昌平一中">
<class name="java-1班" stunum="56">
<student> </student>
<device> </device>
</class>
<class name="java-2班" stunum="50">
<student> </student>
<device> </device>
</class>
</school>
<school name="北京四中">
</school>
<school> </school>
</Schools>
HTML : Hyperlink make language
XML与HTML之间的关系:
A、 XML包含HTML -------???
B、 XML是对HTML的一个补充 -------???
HTML是在网络通信中,传递的含有展示样式的数据。这些数据由浏览器解释执行;
XML可以应用于各行各业,甚至是任何地方
XML的功能远远大于HTML
XML的解析使用DOM、SAX两个接口
HTML是有容错性的,所以它不是标准的XML,也不能使用DOM和SAX解析HTML
XML是大小写敏感的,HTML不敏感
小结:HTML是基于XML规范下的,在Internet上传输并展现数据的一种具体应用;
XML的重要特性:
1. 可扩展 (每个节点或元素都可以自由的扩展)
2. 标记性语言
C++ VB JAVA等都是编译性语言
HTML 和 XML 是不需要编译的
如何执行标记性语言?
C++等编译性语言,执行靠CPU
JAVA等半编译语言,执行靠虚拟机的解释
HTML等标记性语言,执行靠浏览器等进行解释
XML也是标记性语言: 1、先约定好XML标签的含义
2、写解释器去解释执行相应的XML文件
3. XML最重要的体现是数据的载体
其它数据载体: 如数据库、文件、磁盘、光盘
XML可以完全替代数据库,作为数据载体
4.XML不仅是数据的载体,而且可以描述数据的格式
XML使用DTD或者Schema后就是自描述的语言--------------------像数据库的表结构
举例:学生表会有表机构 (姓名、年龄、性别、身高、入学成绩)
会有多名学生的具体数据 (张三、21、男、176、620)
5. DTD或者Schema是XML的结构描述,而且他们本身也符合XML规范
6. XML必须要求格式良好,需要进行格式校验 (有根、成对匹配等)
7. XML便于数据承载和数据交换。尤其是在跨平台环境下的数据交换,优势明显 ----- 主要用途
大企业中有非常多的业务子系统,在同一个企业中,数据和业务一定会有交叉,这时就需要数据交换
系统之间的数据交换模式:
1. Web Service (数据格式是XML的,WSDL)
2. XML文件
XML文档中的基本信息:
1、 声明
<?xml version=“1.0” encoding=“GB2312”?>
2、根元素
3、子元素
4、tag 标签项
5、 节点 Node (XML文档是树形)
6、 attribute 元素的属性信息(按照对象的角度看)
7、 <!-- 这是一个注释 -->
8、 <![CDATA[ ...Anything can go here... ]]>
XML使用 Document Type Definition (DTD) 或者 XML Schema 描述数据
XML文件的解析方式:
DOM(Document object model ) , SAX
DOM的特点: 把整个XML文档,一次性的读入内存,生成org.w3c.dom 接口 Document对象
document对象的数据组织形式是树形
可以使用DOM中的方法反复读取document中的内容(正序、反序)
可以使用DOM中的方法编辑document中的元素
缺陷:当读取大文件时,会出现很大的性能障碍
SAX: DefaultHandler
读取XML文件,采用事件机制 (observe模式,观察者,发布/订阅)
void startDocument() 接收文档开始的通知
void endDocument() 接收文档结束的通知
void startElement(String uri, String localName, String qName, Attributes attributes) 接收元素开始的通知
void endElement(String uri, String localName, String qName) 接收元素结束的通知。
void characters(char[] ch, int start, int length) 接收元素中字符数据的通知
DOM解析:
Document-->> NodeList getElementsByTagName(String tagname)
按文档顺序返回包含在文档中且具有给定标记名称的所有 Element 的 NodeList
Node-->> NodeList getChildNodes() 包含此节点的所有子节点的 NodeList。
if(nd.getNodeType() == Node.ELEMENT_NODE)
{
}
org.w3c.dom 接口 Element:
String getAttribute(String name) 通过名称获得属性值
String getTextContent() 此属性返回此节点及其后代的文本内容
练习:
用XML文件配置数据库的连接信息:dbUrl, dbDriver,username,password
用DOM模式读取这个文件,并设置成单例模式
XML之entity:
entity翻译为"实体"。你可以预先定义一个entity,然后在一个文档中多次调用,或者在多个文档中调用同一个entity。<!DOCTYPE copyright [
<!ENTITY copyright "Copyright 2001, Ajie. All rights reserved"
]
>
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE copyright [
<!ENTITY copyright "Copyright 2001, Ajie. All rights reserved">
]>
<myfile>
<title>XML</title>
<author>ajie</author>
<email>ajie@aolhoo.com</email>
<date>20010115</date>
©right;
</myfile>
//Enity外部引用示例
myenity.dtd
<?xml version="1.0" ?>
<!ENTITY writer "pccw.">内部entity
<!ENTITY copyright "china">
<!ENTITY frame SYSTEM "myentity01.xml"> 外部的entity引用myentity01.xml
外部的一个myentity01.xml
<?xml version="1.0" ?>
<stu>
<name>outman</name>
<age>15</age>
</stu>
相关文章推荐
- Java中的NIO
- Java利用JNI调用FFMpeg对h264码流进行解码
- 在eclipse中给mybatis的config.xml以及映射xml文件配置自动提示
- 中软Java学习8月15日笔记之socket
- Java多线程3:Thread中的静态方法
- SpringMVC对日期类型的转换
- resin4.0.25 安装配置 及结合eclipse开发
- Java 数组、List、Set、Map相互转换
- Java中的对象序列化
- jdk8使用lambda表达式排序
- 准备工作
- Java Mail---SMTP协议-Java发邮件(带附件)演示过程
- 利用SpringMvc和MyBatis实现员工列表显示页面
- java基础(四)
- Java线程安全的实现方法
- java.lang.NoClassDefFoundError: javax/servlet/ServletContext
- 注意点小结(Java)
- Struts2框架10.方法拦截器
- spring的自动装配基础
- spring spel 获取环境变量