2515天 Mr.贰呆

唯一自信的就是自己的人品。
寻求王者玩家一起开黑净化峡谷环境​​

【Android】学习札记第8章之XML及处理XML解析和创建

发布于 / 1272 次围观 / 0 条评论 / Android / 二呆 /

XML是可扩展的标记语言,结构化的数据,由程序解析数据。对于XML的定义,在文档类型定义在一个领域内,由组织、企业、技术领域,指定的XML规范,而这种规范就是DTD。

java/android中处理XML解析和创建可以使用三大工具:

SAX:Simple API for XML

DOM4J:Document Object Model for Java

Pull:Android集成的一个开源开发包

而android系统中集成了Pull,用来解析、创建XML。

工具/原料

JDK、eclipse、android SDK、ADT

一、XML规范——DTD

1、定义(定义好后可使用快捷键):

在文档类型定义在一个领域内,由组织、企业、技术领域,指定的XML规范。

2、引用:

系统内部规范:、在dtd文件中只插入之间的内容。

对当前软件系统公开统一的规范:

二、java/android中三大处理XML解析、创建工具

1、SAX:

㈠SaxParserFactory

负责创建Sax解析器的工厂(需要先建立工厂,再建立解析器。)

㈡SaxParser

Sax解析器,用来解析xml文档

㈢DefaultHandler

解析过程中,用来处理从xml提取出来的数据(xml中从头到尾提取数据)

2、DOM4J:

①第三方解析XML开发包,在内存中生成一个树状结构,API参考官方文档。

②XPath

用路径的形式来表示数据的位置

/email/to/to-email:定位到to-email

/email/body:定位到body

/email/@date:定位到属性date

/email//to-email:定位到email下所有的to-email

//to-email:定位到根下的to-email

③Node

——Document

——Element

——Text

——Attribute

——Comment

——CDSect

④创建树

Document doc=DocumentHelper.createDocument();//创建树根

XMLWriter writer=new XMLWriter(输出流out,格式控制工具format);

out=FileOutputStream();

OutputFormat format=OutputFormat.createCompactFormat();//压缩格式

OutputFormat format=OutputFormat.createPrettyPrint();//有换行格式

format.setEoding("utf-8");

…………

3、XML PULL:(需要新建android项目)

①概述,第三方开源API,已经集成到android开发包中。

XmlPullParserFactory

Xml:辅助类

XmlPullParser

XmlSerializer

②使用方法

Ⅰ、XmlPullParserFactory

A、负责创建解析器和序列化器的工厂类

B、创建对象:

XmlPullParserFactory f=XmlPullParserFactory.newInstance();

C、方法:

newPullParser():创建解析器

newSerializer():创建序列化器

Ⅱ、Xml

Xml.newPullParser():创建解析器,解析XML

Xml.newSerializer():创建序列化器,生成XML

③XmlPullParser解析器:

setInput(Reader in):设置输入流。

setInput(InputStream in,String charset):设置输入流并指定字符编码。

next():跳到下一段,返回int数字代码,表示跳到的数据类型,结束之后,再向回跳,返回。

XmlPullParser.END_DOCUMENT==1。

getEventType():获得当前的位置数据类型的代码。

getName():数据类型是XmlPullParser.START_TAG、XmlPullParser.END_TAG时,在开始标签和结束标签上,获得标签名。

getText():数据类型是:XmlPullParser.TEXT时,如果当前位置是文本数据,用这个方法,可以去除文本内容。

getAttributeCount():获得属性的数量。

getAttributeName():获得属性名。

getAttributeValue():获得属性值。

getAttributeValue(命名空间,属性名):命名空间,属性名:获得指定属性名称对应的值。

④XmlSerializer生成XML:向用户申请外部存储权限:WRITE_EXTERNAL_STORAGE

setOutput(Writer out):设置输出流。

setOutput(Writer out,编码):设置输出流并指定字符编码。

startDocument(编码,是否是独立文件):输出头标签,true表示不依赖其他文档。

startTag():输出开始标签。

attribute():输出属性。

text():输出文本。

endTag():输出结束标签。

注意事项

XML编写时要规范

android中集成了Pull处理XML的工具,所以要重点掌握。

sitemap