JavaWeb基础(2):XML

(一)XML

(1)简介

  • XML:Extensible Markup Language
    • 可扩展的标记语言
  • 使用
    • 属性必须放在引号内
    • 标签必须要关闭
    • 应该有一个根标签
<?xml version="1.0" encoding="UTF-8" ?> //放在文本第一行
  • 标签
    • 标签可以自定义,但是有保留字比如XML
    • &lt;等转义字符(和Markdown的语法有点类似)

(2)CDATA

  • CDATA
    • XML文件中的所有文本都会被解析器解析除了CDATA标签中的内容
    • 所以CDATA可以在一定程度上替换转义
 	<![CDATA[文本]]>

(3)XML解析

  • sax解析:逐行解析
  • dom解析:一次性将文档加载到内存中,形成dom树
  • dom4j:一个Java的XML API,用于读写XML文件
    • 导入jar包:比如dom4j-1.6.1.jar
    • 解析过程Demo
		//创建核心对象
		SAXReader reader = new SAXReader();
		//获取dom树
		Document doc =  reader.read("F:\\Learn-Java\\Head First Java Web\\BasicDemo0\\xml\\web.xml");
		//获取根节点
		Element root = doc.getRootElement();
		//获取其他节点
		List<Element> list = root.elements();
		//遍历
		for(Element e : list){
			//打印doc中servlet-name节点的值
			String text = e.elementText("servlet-name");
			System.out.println(text);
		}
  • xpath解析
    • 导入jar包:比如jaxen-1.1-beta-6.jar
  • doc.selectNodes()
  • doc.selectSingleNode()
		Document doc = new SAXReader().read("F:\\Learn-Java\\Head First Java Web\\BasicDemo0\\xml\\web.xml"); //加载dom树
		List<Element> list = doc.selectNodes("/web-app/servlet/servlet-name"); //获取Element列表
		Element e = list.get(0); //选择第一个元素进行测试
		String text = e.getText(); 
		System.out.println(text); //打印节点内容

(4)XML约束

  • XML约束:规定在xml文件中可以出现的元素、属性以及出现的顺序
  • 约束分类
    • DTD约束:structs & hibernate
    • SCHEMA约束 :tomcat * Spring

(1)DTD

  • 一个XML文件中只能添加一个DTD约束,可以是本地,也可以来自网络(PUBLIC)
  • XML文件和DTD文件的关联
    • 外部关联
  • 写在XML文件的开头:
<!DOCTYPE xml文件的根元素名 SYSTEM "DTD文件的路径"> //外部关联写法
<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd"> //例子
  • DTD语法说明
	<!ELEMENT 元素名称 (包含元素)> //格式
	<!ELEMENT servlet-mapping (servlet-name,url-pattern) >  //在servlet-mapping元素标签下需要包含servlet-name和url-pattern两个标签
	
	<!ELEMENT 元素名称 (#PCDATA)> //表示一个标准的元素名称
	<!ELEMENT servlet-name (#PCDATA)> //定义servlet-name标签
  • 标签属性
    • REQUIRED 必须的属性
    • IMPLIED 可选的属性
  • 其他DTD语法参考正则表达式

(2)SCHEMA

  • 一个XML文件可以有多个SCHEMA约束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值