JavaWeb之XML
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb之XML相关的知识,希望对你有一定的参考价值。
1. XML
可扩展的标记语言
可以用来保存数据
可以用来做配置文件
数据传输
-
文档声明
简单声明,version表示解析这个XML文档的解析器版本
<? xml version="1.0" ?>
encoding表示编码
<? xml version="1.0" encoding="utf-8" ?>
standalone表示是否是一个独立文档,no表示依赖其他文档,yes表示是一个独立的文档
<? xml version="1.0" encoding="utf-8" standalon="no"?>
-
元素定义
元素就是标签,文档声明下面的第一个标签为根标签,所有标签必须放置到跟元素里面
<stus></stus>
-
普通标签和复杂标签
普通标签是标签里面包含文本
复杂标是标签里面嵌套标签
-
注释
与html文档一样,<!-- -->,不允许放在第一行,必须放在文档声明下面
-
CDATA区
非法字符
在XML中,只有字符
<
和&
是非法的,省略号、引号和大于号是合法的,但是把它们替换成实体引用是个好习惯-
<
-
>
-
&
-
&apos
- &qaot
如果某段字符串中包含类似标签或者关键字,不想让xml进行解析,可以使用CDATA来包装 <desc><![CDATA[<a href="www.baidu.com">百度一下,你就指定</a>]]></desc>
-
2.?XML解析
其实就是获取元素里面的字符数据或者属性数据
-
XML解析方式
有很多种,但是常用的有两种
DOM 把整个xml全部读到内存中,形成树状结构,整个文档称为document对象,属性对应Attribute对象,所有的元素节点对应Element对象,文本也可以称为Text对象,以上所有节点称为Node节点,如果xml文件过大,会造成内存溢出,可以对文档进行增删操作
SAX 基于事件驱动,读取一行,解析一行,不可以增删,只能查询
-
针对这两种解析方式API
一些组织或者公司,针对以上两种方式,给出的解决方案有哪些
jaxp sun公司,比较繁琐
jdom
dom4j 使用比较广泛
- Dom4j基本用法
//创建SAX读取对象
SAXReader reader = new SAXReader();
//指定解析源
Document document = reader.read(new File("src/com/kernel/test/demo03.xml"));
//获得根标签
Element rootElement = document.getRootElement();
//获得子标签
Element sonElement = rootElement.element("stu");
//获取所有子标签
List list = rootElement.elements();
//获取标签的属性值
element.element("name").getText()
-
Xpath使用
nodename 选区此节点的所有子节点
/:从根节点选取
//:从匹配选择的当前节点选择文档中的节点,而不考虑位置
.:选取当前节点
..:选取当前节点的父节点
@:选取属性
3. XML约束
如何让怎么规定文档中的元素只出现一次
DTD
语法自成一体,可读性较差
http://www.runoob.com/dtd/dtd-tutorial.html
Schema
语法和xml一样,xml解析起来比较方便
以上是关于JavaWeb之XML的主要内容,如果未能解决你的问题,请参考以下文章