XML 及其解析

2021-08-01 22:23:57 字數 2157 閱讀 1500

一  xml 介紹

xml(extensible markup language), 可擴充套件語言。

xml 的設計是為了傳輸和儲存資料,焦點是資料的內容。

xml 的結構如下:

1) xml 宣告

xml 總是以乙個xml宣告來開始,位於文件的第一行。

它指明了xml 的版本和編碼方式。

如以下, 版本號為1.0, 編碼方式為utf-8。

<?

xml version="1.0"encoding="utf-8"?>

2)  元素

xml 必須有乙個根元素。比如 android 布局檔案的根元素就是布局方式。

xml 的元素有以下4種:

1)  空元素

如:2) 帶屬性的空元素

如: 3)帶有內容的元素

如 :zhang 20

4) 帶有內容和屬性的元素

name="zhang">20

3 注釋

xml 的注釋方式如下:

二  xml 的解析 

這裡主要介紹一下sax 方式解析 xml。

sax主要方法位於org.xml.sax包。

事件源是xmlreader,它用parser()方法來解析xml 文件。

事件處理器是org.xml.sax包中的contenthandler,

dtdhandler,

errorhandler,

entityresolver。

為了方便程式的編寫。 sdk 提供了

defaulthandler 繼承了以上的事件處理器。

1. 獲得xmlreader, 並解析檔案

saxparse***ctory spfactory = saxparse***ctory.newinstance();

saxparser saxparser = spfactory.newsaxparser();

xmlreader xmlreader = saxparser.getxmlreader();

xmlreader.setcontenthandler(new defaulthandler);

inputsource source = new inputsource(new stringreader(xmlfile));

xmlreader.parse(source);

2.    實現defaulthandler

要實現xml 的解析, 必須重寫

defaulthandler 

public class defaulthandler

implements entityresolver, dtdhandler, contenthandler, errorhandler

//文件解析結束

public void enddocument ()

throws saxexception

//開始解析節點

public void startelement (string uri, string localname,

string qname, attributes attributes)

throws saxexception

//結束解析節點

public void endelement (string uri, string localname, string qname)

throws saxexception

//儲存節點內容,ch 為節點內容,start 為節點開始,length 為節點內容長度

public void characters (char ch, int start, int length)

throws saxexception

}

xml 的解析通常需要根據xml 預先定義的元素結構建立  元素類。

在 characters

(charch,

intstart,

intlength)  中儲存到元素類。

解析XML檔案(SAX方式解析XML)

解析xml檔案 sax方式解析xml 對xml檔案解析有四種方法 dom sax jdom dom4j 現著重講一下sax解析xml檔案。1 通過一定的方式獲取檔名 獲得檔案路徑 string xmlfilepath ticanserviceaccess.getsystemsupportservic...

解析XML檔案(SAX方式解析XML)

解析xml檔案 sax方式解析xml 對xml檔案解析有四種方法 dom sax jdom dom4j 現著重講一下sax解析xml檔案。1 通過一定的方式獲取檔名 獲得檔案路徑 string xmlfilepath ticanserviceaccess.getsystemsupportservic...

JSON解析 XML解析

json解析 1大括號代表字典 2中括號 小括號 代表陣列 3冒號的左右兩邊分別為鍵和值 key value 4資料和資料之間 用逗號隔開 我們在本機上建立乙個file.xml,進行解析,並取出年齡35 json解析 本地讀取student.xm l檔案nsstring jstr nsstring ...