XML学习(2)

XML学习(2)

XML(eXtensive Markup Language)可扩展性标记语言

1.标记:

为了处理的目的,在数据中加入附加的信息,称这种信息为标记。

2.标记语言:

运用一系列约定好的语言来进行标记,以实现对电子文档的语义,结构,格式的定义

3.历史:

GML(通用标记语言)-SGML(标准通用标记语言)-HTML(超文本标记语言)-XML(可扩展标记语言)

4.特点:

  1>数据内容与显示相分离
      HTML     CSS
      XML        CSS/XSL
  2>可扩展性
  3>验证机制
	DTD:用于约束和规范XML文档
	XML Schema:用于约束和规范XML文档
  4>跨平台,跨语种
  5>面向对象的特性

5.应用:

   1)数据交换
   2)电子商务(基石)
   3)数据库支持
   4)配置文件

6.XML命名规则

Java命名规则                            XML命名规则
1)以字母、_、$开始                      1)以字母、_开头
2)后面可以跟字母数字、_、$              2)下面可以跟字母、数字、-、.、_
3)大小写敏感                            3)大小写敏感
4)不能使用保留字、关键字                4)不能以保留字、关键字命名
5)没有长度限制                          5)没有长度限制
  注意:<1>见名知意  
    <2>驼峰命名法 
    <3>多个单词,用_隔开

7.语法

1)第一行必须写xml处理指令:<? ?>

1>版本号 version=“1.0”
2>编码格式 encoding=“utf-8/gb2312/gbk”
3>文件独立 standalone=“yes/no”

2)有且只有一个根元素

3)元素的规则

1>开始标签、结束标签匹配出现
2>标签中可以包含属性
3>可以出现空元素 <=>
元素中内容:
a)子元素

<briup>
		<name></name>
</briup>

b)文本内容

<briup>Test</briup>

c)空

<briup></briup>   <briup />

注意:空格、制表符、换行等都不是空
d)混合内容

<briup>
	Test
	<name></name>
</briup>

4>不能交叉嵌套
如:

<a><b><c></a></b></c>      //error
 <a><b><c></c></b></a>

8.属性规则

<1>key=value配对出现
<2>属性只能出现在开始标签,而且一个开始标签中可以出现多个属性,但是同一开始标签中属性不能重名
<3>属性必须要有值,而且值必须用单引号或者双引号引起来

9.注释:

<!--注释内容-->

10.有效的一定良构,良构不一定有效

11.相关符号

 >:&gt     <:&lt     ':&apos    "":&quot       &:&amp

12.解析器

1>验证型解析器:检查XML良构性和有效性
2>非验证型解析:检查XML良构性

13.基于事件的解析器SAX:

1>对文档边读边解析
2>一次性顺序读取,不能随机读取
3>读后忘前
4>对内容是只读

14.基于内存的解析器DOM

1>整个文档读入内存,形成驻留在内容中的树形结构,然后解析
2>反复随机读取
3>对XML文档进行增删改查

15.dom4j解析开发包

1)项目中导入dom4j的包
2)使用相关API进行编程

public class Dom4jTest {
		@Test
		public void demo1() throws Exception{
			//1.获取Document对象
			SAXReader reader = new SAXReader();
			Document document = reader.read(new File("src/com/briup/dtd/web.xml"));
			//2.获取根元素
			Element rootElement = document.getRootElement();
			//3.获取version属性值
			String version = rootElement.attributeValue("version");
			System.out.println("version:" + version);
			//4.获取所有子元素
			List<Element> allChildElement = rootElement.elements();
			//5.遍历子元素,<servlet>、<servlet-mapping>
			for(Element element:allChildElement){
				//6.处理<servlet>
				String name = element.getName();
				//System.out.println(name);
				if(name.equals("servlet")){
					//7.处理<servlet-name>
					Element servletNameElement = element.element("servlet-name");
					String servletName = servletNameElement.getText();
					System.out.print(servletName+":");
					//8.处理<servlet-class>
					Element servletClassElement = element.element("servlet-class");
					String servletClass = servletClassElement.getText();
					System.out.println(servletClass);
				}
			}
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值