javaWeb_day11_XML

1.概述

可扩展标记语言(EXtensible Markup Language)

主要作用:配置文件(更主要的作用),存放数据

2.XML文档声明

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

文档必须以<?xml开头,以?>结束

文档声明必须从文档的0行0列位置开始

version:指定XML文档的版本,必须属性,选择1.0

encoding:指定当前文档的编码,可选属性,默认值是UTF-8

3.XML的元素

例:<default-config>

4.XML的注释

<!--     -->

5.XML的转义字符

例:<property name="password">&lt;123456</property>

当出现大量的转义字符时,使用CDATA

格式:<! [CDATA[

           任意内容

          ]] >

6.XML的常见的约束:DTD  Schema

(1)DTD 文档类型定义:扩展名是dtd

(2)Schema:比DTD强大的多,扩张名是xsd

         命名空间:处理元素和属性的名称冲突问题

          声明命名空间:

          默认命名空间:<xxx   xmlns="">,使用<标签>

          显式命名空间:<xxx  xmlns:别名="">,使用<别名:标签>

7.XML的解析方式:DOM,SAX,PULL

     DOM解析:要求解析器把整个XML文档装载到内存,并解析成一个Document对象

               优点:元素和元素之间保留结构关系,可以进行增删改查操作

                缺点:XML文档过大,可能出现内存溢出现象

常见的解析开发包:

JAXP:sun公司提供支持DOM和SAX开发包

JDom:dom4j兄弟

jsoup:一种处理HTML特定解析开发包

dom4j:比较常用的解析开发包,hibernate底层采用

如果需要使用dom4j,必须导入jar包:dom4j-1.6.1.jar

dom4j必须使用核心类SaxReader加载xml文档获得Document,通过Document对象获得文档的根元素,就可以操作了

常用API:

demo:

package com.sh.day11;

import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

public class TestDom4j {
	@Test
	public void testDom4j() {
		try {
			// 获取文档
			SAXReader sax = new SAXReader();
			Document document = sax.read("src/web.xml");
			//获取根元素
			Element rootElement = document.getRootElement();
			//System.out.println(rootElement.getName());
			//获取根元素的版本
			String version = rootElement.attributeValue("version");
			//System.out.println(version);
			//获得根元素的所有子元素
			List<Element> elements = rootElement.elements();
			for (Element element : elements) {
				System.out.println(element.getName());
				//获取servlet的子元素servlet-name的值
				if ("servlet".equals(element.getName())) {
					Element element2 = element.element("servlet-name");
					String text = element2.getText();
					System.out.println(text);
				}
			}
			
			
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}

}

          

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值