SAX工作原理:當(dāng)掃描到文檔(document)開始與結(jié)束、元素(element)開始與結(jié)束、文檔(document)結(jié)束等地方時同志時間處理函數(shù),由時間處理函數(shù)做相應(yīng)動作,然后繼續(xù)同樣的掃描,直至文檔結(jié)束。

從網(wǎng)絡(luò)上下載XML代碼進行處理
讀取網(wǎng)絡(luò)文件內(nèi)容的方法參考 http://shamrock.blog.51cto.com/2079212/1580269
test.xml
<?xml version="1.0" encoding="UTF-8"?> <workers> <worker id="A01"> <name>Tom</name> <sex>男</sex> <status>經(jīng)理</status> <address>湖北</address> <money>20000</money> </worker> <worker id="A02"> <name>Tom1</name> <sex>男</sex> <status>員工</status> <address>湖北武漢</address> <money>22000</money> </worker> <worker id="A03"> <name>Tom2</name> <sex>男</sex> <status>員工</status> <address>湖北宜昌</address> <money>20200</money> </worker> </workers>
下載文件不能在主線程中進行。
class MyHandler extends Handler {
public MyHandler() {
}
public MyHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bundle bundle = msg.getData();
String urlStr = bundle.getString("urlStr");
String fileName = bundle.getString("fileName");
String path = bundle.getString("path");
HttpDownloader httpDownloader = new HttpDownloader();
//將讀取到的XML文件的內(nèi)容保存到result中
String result = httpDownloader.download(urlStr);
System.err.println(result);
Toast.makeText(MainActivity.this, "~~", Toast.LENGTH_SHORT).show();
try {
// 創(chuàng)建一個SAXParserFactory
SAXParserFactory factory = SAXParserFactory.newInstance();
XMLReader reader = factory.newSAXParser().getXMLReader();
// 為XMLReader設(shè)置內(nèi)容處理器
reader.setContentHandler(new MyContentHandler());
// 開始解析文件
reader.parse(new InputSource(new StringReader(result)));
} catch (Exception e) {
e.printStackTrace();
}
}
}MyContentHandler.java
package com.example.xml;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MyContentHandler extends DefaultHandler {
String hisname, address, money, sex, status;
String tagName;
public void startDocument() throws SAXException {
System.out.println("````````begin````````");
}
public void endDocument() throws SAXException {
System.out.println("````````end````````");
}
public void startElement(String namespaceURI, String localName,
String qName, Attributes attr) throws SAXException {
tagName = localName;
if (localName.equals("worker")) {
//獲取標(biāo)簽的全部屬性
for (int i = 0; i < attr.getLength(); i++) {
System.out.println(attr.getLocalName(i) + "=" + attr.getValue(i));
}
}
}
public void endElement(String namespaceURI, String localName, String qName)
throws SAXException {
//在workr標(biāo)簽解析完之后,會打印出所有得到的數(shù)據(jù)
tagName = "";
if (localName.equals("worker")) {
this.printout();
}
}
public void characters(char[] ch, int start, int length)
throws SAXException {
if (tagName.equals("name"))
hisname = new String(ch, start, length);
else if (tagName.equals("sex"))
sex = new String(ch, start, length);
else if (tagName.equals("status"))
status = new String(ch, start, length);
else if (tagName.equals("address"))
address = new String(ch, start, length);
else if (tagName.equals("money"))
money = new String(ch, start, length);
}
private void printout() {
System.out.print("name: ");
System.out.println(hisname);
System.out.print("sex: ");
System.out.println(sex);
System.out.print("status: ");
System.out.println(status);
System.out.print("address: ");
System.out.println(address);
System.out.print("money: ");
System.out.println(money);
System.out.println();
}
}另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
本文名稱:Android學(xué)習(xí)筆記-XML處理-創(chuàng)新互聯(lián)
文章分享:http://chinadenli.net/article6/diieig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站制作、域名注冊、外貿(mào)網(wǎng)站建設(shè)、微信小程序、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容