亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android學習筆記-XML處理

發布時間:2020-07-14 13:29:12 來源:網絡 閱讀:442 作者:umgsai 欄目:移動開發

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

從網絡上下載XML代碼進行處理

讀取網絡文件內容的方法參考 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>經理</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文件的內容保存到result中
			String result = httpDownloader.download(urlStr);
			System.err.println(result);
			Toast.makeText(MainActivity.this, "~~", Toast.LENGTH_SHORT).show();

			try {
				// 創建一個SAXParserFactory
				SAXParserFactory factory = SAXParserFactory.newInstance();
				XMLReader reader = factory.newSAXParser().getXMLReader();
				// 為XMLReader設置內容處理器
				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")) {
			//獲取標簽的全部屬性
			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標簽解析完之后,會打印出所有得到的數據
		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();
	}

}



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼和浩特市| 揭东县| 衡阳市| 九江县| 平罗县| 本溪市| 磐安县| 浦城县| 鄂尔多斯市| 平乡县| 望都县| 彭州市| 宜兴市| 元氏县| 荔波县| 绥芬河市| 营口市| 蕉岭县| 宁波市| 长沙县| 正镶白旗| 宣汉县| 沙田区| 临汾市| 武鸣县| 通道| 泰来县| 玉山县| 诸城市| 南澳县| 陕西省| 广东省| 汉川市| 黄浦区| 镶黄旗| 左云县| 宕昌县| 北海市| 镇江市| 普洱| 新建县|