xml学习

Xml–Extensible Markup Language(可扩展标记语言)
作用:1,可以用来保存数据
2,可以用来做配置文件
3,数据传输载体
数据结构:倒状树型结构
1,文档声明:
<?xml version="1.0" encoding="UTF-8"?>
2,标签定义规则
标签成对出现:<></>;或者空标签
标签可以自定义
标签不能以数字或者标点符号开始
标签不能以xml开始
标签不能包含空格
3,标签内属性定义规则
定义在标签里面:<>
4,注释:
xml的注释,不允许放置在文档的第一行,必须在文档声明的下面。

5,CDATA(字符数据)区:
格式:<![CDATA[]]>
CDATA,此内容比较少见,一般是服务器返回数据时,才会看见

XML解析
1,DOM:把整个xml全部读到内存中,形成树状结构,整个文档称为document对象,属性对应attribute对象,所有的元素节点对应element对象,文本称为text对象,这些所有对象称为Node节点。
注意:如果xml文件过大,会造成内存溢出,但是可以对文档进行增删操作
2,SAX——simple API for xml(基于事件驱动):读取一行,解析一行。
注意:不会造成内存溢出,但是不能进行增删,只能进行查询
针对这两种解析方式的API有:jaxp sun公司提供
jdom
dom4j 使用比较广泛

Dom4j的基本用法:
1,创建SAXReader对象
SAXReader sr=new SAXReader();
2,指定解析xml文件或路径
Document doc=sr.read(new File(“src/xml/X_stus.xml”));
3,获取根元素rootElement
Element rootElement = doc.getRootElement();
4,根据根元素获取子元素或者子孙元素
List elements = rootElement.elements();

示例:
	try {
		//创建SAXReader对象
		SAXReader sr=new SAXReader();
		//指定解析的xml源文件
		Document doc=sr.read(new File("src/xml/X_stus.xml"));
		//获取根元素
		Element rootElement = doc.getRootElement();
//			获取根元素下的子元素集合
			List<Element> elements = rootElement.elements();
			for(Element element:elements) {
				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();
	}

xml的约束:
1,DTD规则约束——dtd文件
DTD规则:
<!ELEMENT stus (stu)>
<!ELEMENT stu (name , age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ATTLIST stu id CDATA #IMPLIED>
2,Schema规则约束——xsd文件
由于Schema也是一个xml文件,所欲会引入网络约束
Schema规则:
xmlns : xml namespace : 名称空间 / 命名空间
targetNamespace : 目标名称空间 。 下面定义的那些元素都与这个名称空间绑定上。
elementFormDefault : 元素的格式化情况。

			<element name="teachers">
				<complexType>
					<sequence maxOccurs="unbounded">
						<element name="teacher">
							<complexType>	
								<sequence>
								<element name="name" type="string"></element>
								<element name="age" type="int"></element>
								</sequence>
							</complexType>
						</element>
					</sequence>
				</complexType>
			</element>
		</schema>

程序架构:
1,C/S(client/server):
采用此架构的实例:QQ,WECHAT,LOL
优点:
有一部分代码写在客户端,用户体验较好
缺点:
服务器更新,客户端吧也要更新,占用资源较大
2, B/S(browser/server):
采用此架构的实例:网页游戏,WebQQ,Web微博
优点:
客户端只要有浏览器就可以使用,占用资源少,不用更新
缺点:
用户体验不佳

安装包内目录介绍:
1,bin :用于存放jar文件、bat文件等
2,conf :配置文件
3,lib :程序运行所需的jar文件
4,logs :用于存放运行日志
5,temp :临时文件
6,webapps:发布到服务器上的项目,存放于此文件中
7,work :由jsp编译成的class文件,存放于此文件中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值