java小白笔记--XML

来源:互联网 发布:c语言进阶书籍 编辑:程序博客网 时间:2024/04/26 11:20

XML指可扩展标记语言( Extensible Markup Language ),是独立于软件和硬件的信息传输工具。主要用途:简化数据共享、简化数据传输、简化平台变更。

基本语法

处理指令

XML使用处理指令来指挥解析引擎如何解析XML文档内容。在XML中,所有处理指令都是以

元素和属性

XML元素指从开始标签到结束标签的部分(包括开始结束标签),元素可以包含其他元素、文本或者两者的混合,元素可以拥有属性。
XML属性必须写在开始标签中,属性通常用于提供关于元素额外的信息。属性值必须被引号包围,单引号或双引号均可以。
有开始标签就必须有结束标签,两者名字相同,结束标签比开始标签名字前多一 /
XML要求必须有根元素,所谓根元素就是不被其他元素包围,根元素有且只有一个。

实体引用

在XML中,有时实体内包含的一些字符需要转义,否则会有错误。
小于(<):<
大于(>):>
与字符(&):&
单引号(‘):<
双引号(“):<

CDATA段

格式:

XML解析

解析方法

SAX(simple APIfor XML)是一种XML解析的替代方法。相比DOM,SAX是一种速度更快,更有效的方法。它逐行扫描文档,边扫描边解析,可以在解析任一时刻停止。
优点:解析可以立即开始,速度快,没有内存压力
缺点:不能对节点做修改

DOM(Document Object Model)是W3C组织推荐的处理XML的一种方式。解析XML文档时,会把文档中所有元素,按照其出现的层次,解析成一个个node对象。
优点:把XML在内存中构造树形结构,可以遍历和修改节点
缺点:如果文件较大,内存有压力,解析时间会比较长

读取XML

使用SAXReader读取XML需要导入dom4j-full.jar包,创建SAXReader对象来读取XML文档new SAXReader.read(File file)返回一个Document对象,调用Document对象的getRootElement()方法获取Element类型的根元素

Element常用方法

Element element(String name) //获取当前元素下制定名字的字元素List elements() //获取当前元素下所有子元素String getName() //获取当前元素的元素名String getText() //获取当前元素的文本节点Attribute attribute(int index) //获取当前元素的指定下标属性,下标从0开始Attribute attribute(String name) //获取当前元素的指定名字属性

Attribute常用方法

String getName() //获取属性名字String getValue() //获取属性的值

写XML

通过DOM4J写出XML第一步是创建文档对象Document,创建Document对象是通过DocumentHelper的静态方法来获取的static Document createDocumenet()

通过Document对象添加根元素

Element addElement(String name) //向文档添加根元素,该方法应只调一次

Element常用方法

Element addElement(String name) //向当前元素添加指定名字的子元素Element addAttribute(String name,String value) //向当前元素添加指定属性及对应的值,返回当前对象便于连续追加元素Element addText(String name) //向当前元素添加指定内容文本

当构造完XML后,通过XMLWriter将文档输出生成xml文件

XMLWriter writer = new XMLWriter()writer.setOutputStream(OutputStream os) //设置输出位置writer.write(Document doc) //将文档输出writer.close() //输出完毕后关闭

XPath

XPath是一门XML文档中查找信息的语言。

nodename:表示选择该节点下所有子节点
/:表示选择根节点
//:表示选择任意位置某个节点
@:表示选择某个属性

谓语条件就是对路径表达式的附加条件,多有条件写在[]中(比如下标位置、属性值)

//*:选择文档中所有元素节点
/ * /*:选择所有第二层元素节点

List selectNodes(String xpath) //获取传入路径相应信息
0 0
原创粉丝点击