Xml可扩展的标记语言

一、作用

  1. 可以用来保存数据
  2. 可以用来做配置文件
  3. 数据传输载体

二、文档声明

<?xml version="1.0" encoding="gbk" ?>

version : 解析这个xml的时候,使用什么版本的解析器解析
encoding : 解析xml中的文字的时候,使用什么编码来翻译
standalone:是否独立
取值:
* yes:不依赖其他文件
* no:依赖其他文件

三、 XML 命名规则
XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格
四、xml注释:
与html的注释一样
五、CDATA区----不让xml的解析器去解析的字段
* CDATA区:在该区域中的数据会被原样展示
* 格式: <![CDATA[ 数据 ]]>
六、XML解析
1、两种方式:DOM和SAX
2、解析API:jdom、dom4j
七、Dom4j基本用法
1、element.element(“stu”) : 返回该元素下的第一个stu元素
element.elements(); 返回该元素下的所有子元素。
2、 创建SaxReader对象
3、 指定解析的xml
4、获取根元素
5、根据根元素获取子元素或者下面的子孙元素
6、代码展示

	try {
			//1. 创建sax读取对象
			SAXReader reader = new SAXReader(); //jdbc -- classloader
			//2. 指定解析的xml源
			Document  document  = reader.read(new File("src/xml/stus.xml"));
			
			//3. 得到元素、
			//得到根元素
			Element rootElement= document.getRootElement();
			
			//获取根元素下面的子元素 age
		//rootElement.element("age") 
			//System.out.println(rootElement.element("s").element("a").getText());


			//获取根元素下面的所有子元素 。 stu元素
			List<Element> elements = rootElement.elements();
			//遍历所有的stu元素
			for (Element element : elements) {
				//获取stu元素下面的name元素
				String name = element.element("name").getText();
				String age = element.element("age").getText();
				String address = element.element("address").getText();
				System.out.println("name="+name+"==age+"+age+"==address="+address);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}

八、Xpath使用
1、定义
xpath其实是xml的路径语言,支持我们在解析xml的时候,能够快速的定位到具体的某一个元素。
2、jar包依赖‘—jaxen-1.1-beta-6.jar
九、xml约束
1、DTD

 	<!DOCTYPE stus [
   		<!ELEMENT stus (stu)>
   		<!ELEMENT stu (name,age)>
   		<!ELEMENT name (#PCDATA)>
   		<!ELEMENT age (#PCDATA)>
   	]>
* DTD:
			* 引入dtd文档到xml文档中
				* 内部dtd:将约束规则定义在xml文档中
				* 外部dtd:将约束的规则定义在外部的dtd文件中
					* 本地:<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
					* 网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">

2、Schema
十、总结
1、定义xml
2、解析xml

posted @ 2020-02-21 18:06  李泽坤  阅读(172)  评论(0编辑  收藏  举报