XML

XML

结构

         文档声明

最简单版本

<?xml version=”1.0”?>

加编码格式版本

<?xml version=”1.0”? encoding=”GB2312”>

加是否独立

<?xml version=”1.0” encoding=”GB2312” standlone=”yes”?>

         <标签 属性>标签体</标签>

         不能有换行、空格,会当做内容一起读取。

         <!--注释-->

         转义字符:不解释了。

         CDATA区:xml解析程序不会处理,直接原样输出

         <![CDATA[

                   <qidi>

                            <study></stydy>

</qidi>

]]>

处理指令

解析XML

原理:DOM(可进行修改)、SAX(读取快)

工具:JDOM、DOM4J、SAX

DOM

使用步骤:1、导入dom4j包,dom4j.jar

                     2、编写dom4j读取xml文件代码。

获取XML对象:

         File xmlFile = new File(“”);

         SAXReader reader =- new SAXReader();

         Domcument docu = reader.read(xmlFile);

ElementNode

getTextattributeValuegetRootElement

只能一层一层获取,不可越级。

修改:

FileOutputStream

DocumentHelper.createDocument()

Add增加。。。

XMLWriter(OutputStream,OutputFormat)

别忘关闭。

Xpath

包名:jaxen

selectNdoesselectSinglaNode

//  全文

/  表示从根开始

[] 条件

@ 属性

*通配符

And  并关系

Text()获取文本

SAX

SAXPraserFactory.newInstance().newSAXPraser();

Praser.prase(new File,new MyDefaultHandle);

注意:MyDefaultHandle extends DefaultHandle

startElement();

endElement();

characters();

/*

“比较内容”.equals(变量),不然会有空指针。

用 characters获取String时,尽量不要用Integer.parse()进行装换,要不还是报错。

*/

============DOM解析    vs   SAX解析          ========

DOM解析

SAX解析

原理: 一次性加载xml文档,不适合大容量的文件读取

原理: 加载一点,读取一点,处理一点。适合大容量文件的读取

DOM解析可以任意进行增删改成

SAX解析只能读取

DOM解析任意读取任何位置的数据,甚至往回读

SAX解析只能从上往下,按顺序读取,不能往回读

DOM解析面向对象的编程方法(Node,Element,Attribute),Java开发者编码比较简单。

SAX解析基于事件的编程方法。java开发编码相对复杂。

简单点,不行么?!
原文地址:https://www.cnblogs.com/core404/p/5727774.html