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) //获取传入路径相应信息
- java小白笔记--XML
- XML小笔记
- 小笔记之XML
- Java小白笔记--集合
- Java小白笔记1
- Java小白笔记2
- java小白笔记--异常处理
- 小白笔记-------------------java关键词abstract
- 小白笔记--------------------------java关键词static
- 小白笔记---------------------------------------java关键词final
- Java小白之jar笔记
- java接口----小白入门笔记
- 小白Java笔记——运行机制
- 小白Java笔记——注释
- 小白Java笔记——数据类型
- 小白Java笔记——数组
- JAVA XML 笔记
- java创建Xml笔记
- css position: fixed; 垂直居中,绝对定位居中
- Mysql The server quit without updating PID file 解决方法
- HDU_5167_Fibonacci
- 美丽的月亮拍摄问题
- 第3章 里氏替换原则(LSP)
- java小白笔记--XML
- Python爬虫学习
- android 小知识点
- Ubuntu Server 16.04.1 LTS 使用手记
- 【noip 2015】信息传递 dfs
- Unity 解决UI点击穿透问题
- 多选框jquery选择
- Scala:类,对象和特征(接口)
- 虚拟内存和物理内存的概念