xml :
可扩展的标签语言
标签自定义
作用:存储数据(配置文件)
书写规范:
1.区分大小写
2.应该有一个根标签
3.标签必须关闭<xx></xx> <xx/>
4.属性必须用引号引起来,<xx att = "value"/>
5.标签体重的空格或者换行换着制表符等内容都是作为数据内容存在
6.特殊字符必须转义 < > &
满足上面规范的文件我们称之为是一个格式良好的xml文件。可以通过浏览器浏览
xml组成部分:
声明:
作用:告诉别人我是一个xml文件
格式:<?xml ... ?>
要求:
必须在xml文件第一行
必须顶格写
元素(标签):
格式:<xxx></xxx>
要求:必须关闭
标签不能 xml Xml XML 等开肉
标签名中不能出现“” 或者“:”等特殊字符
属性:
格式:<xx 属性名 =“属性值”>
要求:属性必须用引号引起来
注释:和html 一直<!-- -->
CDATA':xml文件的特殊字符必须转义
通过cdataky保存数据原样输出
格式:<![CDATA[
<img>原样输出的内容
]]>
、、、、、、、、、、、、、、、
xml解析
解析方式
1.sax:特短板:逐行解析,只能查询
2.dom:特点:一次性将文档加载到内容中,形参一个dom书。可以对dom树curd操作
解析技术
JAXP:sun公司提供支持DOM和SAX开发包
JDom:dom4j兄弟
jsoup:一种处理HTML特定解析开发包
dom4j:比较常用的解析开发包,hibernate底层采用。
dom4j技术进行查询操作
使用步骤:
1导入jar包
2创建一个核心对象 SAXReader
3将xml文档加载到内存中形成一棵树
Document doc =reader.read(文件)
4获取根节点
Element root = doc.getRootElement();
5通过根节点就可以获取其他节点(文本节点,属性节点,元素节点)
获取所有的资源数
List<Element> list = root .elements()
获取元素的指定属性内容
String value = root .attributeValue(“属性名”);
获取子标签标签体:遍历list 获取到每一个子元素
String text = ele.elementText("子标签名称")
xpath解析技术:依赖于dom4j
使用步骤:
1.导入jar包( jaxen-1.1-beta-6.jar)
2.加载xml文件到内存
3.使用api
selectNode(“表达式”);
SelectSingleNode(“表达式”);
表达式的写法
/从根节点选取
//从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置
例如一个标签下有一个id属性且有值 id=2;
//元素名[@ 属性名 =‘属性值’]