欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javawebDay1 xml与tomcat

程序员文章站 2022-03-25 16:42:08
...

一、xml

1.xml基础

1.xml extendsible markup language 可扩展的标记语言。
2.作用:
1.可以用来保存数据。
2.可以用来做配置文件
3.数据传输载体
3.文档结构图:倒状树形结构
4.声明定义:文档声明必须在第一行

<?xml version="1.0" encoding="UTF-8"?>

1.standalone=“yes or no”:文档是否独立
5.encoding详解:
1.计算机存储文字时存储的是二进制信息,这些二进制根据微软默认的编码进行解码存储。
2.解决乱码:用什么编码保存的,就用什么编码读取。
3.gb2312 升级版 GBK
4.元素的定义:就是<>括起来的都是
5.文档声明下的第一个标签是根元素
6.属性定义:<元素名 属性名称=“属性值”></元素名>
7.注释:

二、CDATA区

1.转义字符:

  • < <
    2.CDATA:内部的所有的东西都会被解析器忽略
    3.CDATA区段开始<![CDATA["要被忽略的内容"]]>
    4.使用:如果某段字符串里面有很多的字符,并且里面包括了类似标签或者关键字的这种信息,不想让xml的解析器去解析,那么可以使用CDATA来包装。通常用于在服务器给客户端返回数据时用到。

三、xml解析方式

1.xml解析就是获取元素里面的字符数据或属性数据

1.DOM解析(document object model 以文档的形式解析,形成树状结构):全读取再解析

1.概念:DOM:把整个xml文件全部读取到内存中,形成树状结构,整个文件称为document对象,属性对象Attribute对象,所有的元素节点对应Element对象,文本也可以称为Text对象,以上所有的对象都可以称为Node节点。
2.使用于小型xml文件,如果xml特别大,可能造成内存溢出,可以对文档进行增删

2.SAX解析(simple api for xml):基于事件驱动,读取一行解析一行。

1.不会造成内存溢出,不能进行增删,只能查询

四、解析xml的解决方案或手段

1.dom4j用法:

1.创建SaxReader对象
2.指定解析的XML
3.获取根元素
4.根据根元素获取子元素或者下面的子孙元素

package Day1;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Test1 {
	public static void main(String[] args) {
		try {
			//1.创建sax对象
			SAXReader reader = new SAXReader();
			//2.指定解析的xml源
			Document document = reader.read(new File("src/Day1/demo.xml"));
			//3.得到元素
			
			//3.1得到根元素
			Element rootElement = document.getRootElement();
			System.out.print(rootElement.getName());
			
			//3.2得到根元素里面第一个子元素
			System.out.println(rootElement.element("stu").getName());
			//3.3得到根元素里面第一个子元素的第一个子元素的值(对于根元素而言,是其孙)
			//获取元素值,getText();getStringValue();
			System.out.println(rootElement.element("stu").element("age").getStringValue());
			System.out.println(rootElement.element("stu").element("age").getText());
			
			//4.1 获取根元素里面的所有的子元素
			List<Element> elements = rootElement.elements();
			//4.1遍历根元素下的所有子元素及其值
			for (Element element : elements) {
				String name = element.element("name").getText();
				String age = element.element("age").getText();
				String address = element.element("address").getText();
				System.out.println("姓名:\t"+name+"年龄:\t"+age+"地址:\t"+address);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

2.xpath用法:

1.dom4j里面支持Xpath的写法,xpath其实是xml的路径语言,支持我们在解析xml时,快速定位到具体的某一个元素
2.步骤:
1.添加jar包依赖,jaxen-1.1-beta-6.jar
2.根据xpath语法规则查找

五、xml约束

1.DTD约束,约束xml编写的条件

1.语法自成一派,出现早,可读性、差
2.使用方法一

<!ELEMENT stus (stu)>
<!ELEMENT stu (name,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)> <!--parser charcter date-->
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入约束 -->
<!-- 文档类型 根标签 本地还是网络  dtd路径/dtd名 -->
<!DOCTYPE stus SYSTEM "demo1.dtd">
<stus>
	<stu>
		<name >张三</name>
		<age>25</age>
	</stu>
</stus>

3.第二种:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入约束 -->
<!-- 文档类型 根标签 本地还是网络  dtd路径/dtd名 -->
<!DOCTYPE stus [
	<!ELEMENT stus (stu)>
	<!ELEMENT stu (name,age)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age (#PCDATA)> <!--parser charcter date-->
]>
<stus>
	<stu>
		<name >张三</name>
		<age>25</age>
	</stu>
</stus>

4.使用网络上的约束导入:

<!DOCTYPE stus PUBLIC "//UNKNOWN/" "unknown.dtd">

5.1声明元素:<!ELEMENT 元素名称 类别> or <!ELEMENT 元素名称 (元素内容)> ,声明空元素<!ELEMENT 元素名称 EMPTY>
5.2
5.声明属性: <!ATTLIST 元素名称 属性名称 属性类型 默认值>,<!ATTLIST payment type CDATA "check">

2.Schema约束

1.是一个xml文件,使用xml语法规则,xml解析器比较方便

相关标签: javaweb学习