XML笔记:
eXtendsible markup langguage 可扩展的标记语言
XML 有什么作用?
1、可以用来保存数据
2、可以用来做配置文件
3、数据传输载体
文档声明
简单声明,version:解析这个xml,是使用什么版本的解析器
encoding:解析xml中的文字时,使用什么编码来翻译。
<? xml version="1.0" encoding="UTF-8" ?>standalone :该文档会依赖关联其他文档,yes–这是一个独立的文档
<? xml version = "1.0" enconding= "UTF-8" standalone="no" ?>enconding详解:
在解析解析xml,用什么编码去解析
电脑上的文件在保存的时候并不是真正的存储文字,而是存储对应的二进制。
默认的文件保存的时候,使用的是GBK保存
所以要想让我们能够正常的显示中文,有两种解决方法:
1、让encoding也是GBK或者GB2312
2、如果encoding是utf-8,那么保存文件得时候也必须使用utf-8
3、保存的时候见到的ANSI对应的其实是我们的本地编码GBK
元素定义
1、其实就是里面的标签,<>括起来的就叫元素
2、标签都是成对出现的
3、标签里面可以嵌套标签
4、空标签
结束标签
简单元素 & 复杂元素
简单
元素里面包含了普通的文字
复杂
元素里面嵌套其他的元素
xml注释
和HTML一样
xml的注释,不允许放置在文档的第一行。 必须在文档的声明下面
CDATA区
<—> <
>—> >
&-> &
若果某字段里面有过多的字符,并且里面包含了类似标签或者关键字的这种文字,不想让xml的解析器去解析。那么可以用CDATA来包装。
<![CDATA[你好!]]>
##XML解析****
其实就是获取元素里面的字符数据或者属性数据。
###XML解析方式(面试常问)
有很多种,但是常用的有两种
DOM
SAX
针对以上两种的解析方式,给出的解决方案
jaxp sun公司。比较繁琐。
jdom
dom4j 使用比较广泛。for each在jdk5中增强型循环
**声明语句:**声明新的局部变量与数组的元素匹配。
**表达式:**要访问的数组名,或者返回为数组的方法
eg:
int[] array={1,2,3,45,56,56};
for(int Array:array){
System.out.println(Array);
}
Dom4j基本的用法
1、创建SaxReader对象
2、指定解析的xml
3、获取根元素
4、根据元素获取子元素或者下面的子孙元素。
Dom4j的Xpath使用
dom4j里面支持Xpath的写法。Xpath其实是xml路径语言,支持我们解析xml的时候,能够快速的定位到具体的某一个元素。
1、添加jar包依赖
2、在查找制定节点的时候,根据Xpath语法规则来查找
3、后续的代码与以前的额解析代码一样。
XML约束
属性ID 值不能是一样的,元素是唯一的。
约束的类型{
DTD
语法自成一派,早起就出现的,可读性比较差
Schema
其实就是一个xml,使用xmal的语法规则,xml解析器解析起来比较方便。
}
程序架构
C/S(client/server)
优点:有一部分代码写在客户端,用户体验比较好。
缺点:服务器更新,客户端也要随着更新。占用资源大。
B/S(browser/sever):
优点:
客户端 只要浏览器就可以了。占用资源小,不用更新。
Tomcat如何把一个项目发布
localhost :本机地址
1、拷贝这个文件到webapps/ROOT底下,在浏览器里面访问 :
http://localhost:8080/文件名.xml
2、在webapps下面新建一个文件夹xml,然后拷贝文件放置到这个文件夹中
http://localhost:8080/xml/文件名.xml、
JDBC
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost/stu","root","root");
Statement st = <u>conn</u><u>.</u><u>createStatement</u><u>()</u>;
String sql = "select * from stu";
ResultSet rs = st.<u>execute</u>(sql);
while(rs.next()) {
}