91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

田林县| 邓州市| 如皋市| 桓仁| 胶州市| 临洮县| 巴青县| 商城县| 阿拉善左旗| 天峨县| 鸡东县| 崇信县| 湖州市| 延长县| 肥乡县| 桂阳县| 曲周县| 南平市| 资阳市| 台北市| 新巴尔虎左旗| 澄迈县| 罗城| 丰台区| 二连浩特市| 北海市| 济南市| 贵溪市| 五峰| 峨眉山市| 柳江县| 班戈县| 株洲县| 桐乡市| 秦皇岛市| 昂仁县| 梁平县| 孟津县| 且末县| 织金县| 平顺县|