一、XML简介
1.XML定义
可扩展标记语言(eXtensible Markup Language),它是一种标记语言。XML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目前遵循的是W3C组织于2000年发布的XML1.0规范。
XML是一种通用的数据交换格式。
XML标签没有被预定义,需要用户自行定义标签。
XML中的数据必须通过软件程序来解析执行或显示,如IE;这样的解析程序称之为Parser(解析器)。
- 标记型语言: html,使用标签操作,标签有特定含义
- 可扩展性标记语言:标签可以自定义
2.XML作用
html用于显示数据,xml也可以显示数据,但是其主要功能是:传输、存储数据。
xml的两个版本:1.0 1.1(不能向下兼容)
3.XML应用
- 不同系统之间传输数据
QQ之间的信息传输(之前使用字符串拼接的形式,把qq1的信息,传送给服务器,服务器解析后把信息发送给qq2。这种方式不利于系统的维护。) - 来表示生活中的有关数据
- 文件配置(用于的扩展和维护,eg:修改数据库信息,仅修改配置文件即可)
4.xml解析
2种方式(技术):sax,dom解析
dom解析:根据xml的层级结构,在内存中分配一个树形结构,把xml每部分都封装成对象。优点:很方便实现增删改操作。缺点:使用dom解析xml时候,如果文件过大,容易造成内存溢出。
sax解析:采用事件驱动,边读边解析。从上到下,一行一行的解析,解析到某一个对象,把对象名称返回。优点:使用sax方式不会造成内存溢出,实现查询。缺点:使用sax方式,不能实现增删改操作。
需要解析器来解析xml - 不同的公司和组织提供了针对dom和sax方式的解析器,通过api方式提供
- sun公司提供针对sax和dom 的解析器 【jaxp】
- dom4j组织,针对dom和sax解析器【dom4j】{实际开发中使用}
- jdom组织,针对dom和sax解析器【jdom】
最开始dom4j是jdom 的一个部门,后来独立出来,建立dom4j,集jdom优点于一身。
5.jaxp的api的查看 - jaxp是javase的一部分
- jaxp解析器是jdk的javax.xml.parsers包里面
**四个类:分别是针对dom和sax解析使用的类
dom:
DocumentBuilder:解析类
(1.是一个抽象类,不能new,此类的实例,可以从DocumentBuilderFactory.newDocumentBuilder()方法获取。
2.一个方法,可以解析xml paser(“xml路径”)返回的是Document整个文档。
3.返回的document是一个接口,父节点是Node,如果在document里面找不到想要的方法,可以到Node里面找。
4.在document里面方法1)getElementsByTagName(String tagname)可以得到标签,返回集合NodeList)
2)createElement(String tagname)创建标签
3)createTextNode(String data)创建文本
4)appendChild(Node newChild)把文本添加到标签下面
5)remvoeChild(Node oldChild)删除节点
6)getParentNode()获取父节点
NodeList里面
getLength()得到集合的长度。
item(int index)下标取到具体的值
for(int i=0;i