XML_DTD约束和XML_Schema约束以及使用dom4j解析

一、XML的简单介绍

    XML全称为Extensible Markup Language 可扩展的标记语言。XML语法上和HTML比较相似,但HTML的元素是固定的,而XML的标签是可以由用户自定义的。

二、DTD约束

    DTD(Document Type Definition),文档类型定义,用来约束XML文档,规定XML文档中元素的名称,子元素的名称及顺序,元素的属性等。

三、Schema约束

    Schema约束是新的XML文档约束,比DTD强大很多,是DTD的替代者,

四、Dom4j解析

    当讲数据存储在xml后,希望通过程序获得XML的内容,采用Dom4j对XML文件进行解析,使用Dom4j解析首先导入jar包。点击下载JAR包 密码:4l93

常用API如下:

1.SaxReader对象

    read 加载执行xml文档

2.Document对象

    getRootElement() 获得根元素

3.Element对象

    elements获得指定名称的所有子元素,可以不指定名称

    element 获得指定名称第一个子元素,可以不指定名称

    getName 获得当前元素的元素名字

    attributeValue 获得指定属性名的属性值

    elementText 获得指定名称子元素的文本值

    getText 获得当前元素的文本内容

package cn.itheima.xml.dom4j;

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 testReadWebXML() {
		try {
			// 1.获取解析器
			SAXReader saxReader = new SAXReader();
			// 2.获得document文档对象
			Document doc = saxReader.read("src/cn/itheima/xml/schema/web.xml");
			// 3.获取根元素
			Element rootElement = doc.getRootElement();
			// System.out.println(rootElement.getName());//获取根元素的名称
			// System.out.println(rootElement.attributeValue("version"));//获取根元素中的属性值
			// 4.获取根元素下的子元素
			List childElements = rootElement.elements();
			// 5.遍历子元素
			for (Element element : childElements) {
				//6.判断元素名称为servlet的元素
				if ("servlet".equals(element.getName())) {
					//7.获取servlet-name元素
					Element servletName = element.element("servlet-name");
					//8.获取servlet-class元素
					Element servletClass = element.element("servlet-class");
					System.out.println(servletName.getText());
					System.out.println(servletClass.getText());
				}
			}

		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}
}

你可能感兴趣的:(java)