Android XML解析使用SAX解析器含代碼

Android XML解析使用SAX解析器

Android提供了使用SAX、DOM等解析器解析xml文件的功能。愛掏網(wǎng) - it200.comSAX解析器不能用于創(chuàng)建XML文件,只能用于解析xml文件。愛掏網(wǎng) - it200.com

SAX解析器相對(duì)于DOM的優(yōu)勢

它占用的內(nèi)存較少。愛掏網(wǎng) - it200.com

Android SAX Xml解析示例

activity_main.xml

從工具箱中拖動(dòng)一個(gè)文本視圖。愛掏網(wǎng) - it200.com現(xiàn)在,activity_main.xml文件將如下所示:

<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="75dp"
        android:layout_marginTop="46dp"
        android:text="TextView" />

</RelativeLayout>

XML文檔

在您的項(xiàng)目的assets目錄中創(chuàng)建名為file.xml的xml文件。愛掏網(wǎng) - it200.com

<?xml version="1.0"?>
<records>
<employee>
<name>Sachin Kumar</name>
<salary>50000</salary>
</employee>
<employee>
<name>Rahul Kumar</name>
<salary>60000</salary>
</employee>
<employee>
<name>John Mike</name>
<salary>70000</salary>
</employee>
</records>

Activity類

現(xiàn)在編寫代碼使用sax解析器解析xml。愛掏網(wǎng) - it200.com

package com.javatpoint.saxxmlparsing;


import java.io.InputStream;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tv;
@Override

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.textView1);
try {
SAXParserFactory factory = SAXParserFactory.newInstance();

SAXParser saxParser = factory.newSAXParser();


DefaultHandler handler = new DefaultHandler() {

boolean name = false;

boolean salary = false;


public void startElement(String uri, String localName,String qName,
Attributes attributes) throws SAXException {
if (qName.equalsIgnoreCase("name"))
{
name = true;
}
if (qName.equalsIgnoreCase("salary"))
{
salary = true;
}
}//end of startElement method
public void endElement(String uri, String localName,
String qName) throws SAXException {
}

public void characters(char ch[], int start, int length) throws SAXException {
if (name) {

tv.setText(tv.getText()+"\n\n Name : " + new String(ch, start, length));
name = false;
}
if (salary) {
tv.setText(tv.getText()+"\n Salary : " + new String(ch, start, length));
salary = false;
}
}//end of characters
 method
};//end of DefaultHandler object

InputStream is = getAssets().open("file.xml");
saxParser.parse(is, handler);

} catch (Exception e) {e.printStackTrace();}
}
}

下載此示例

輸出:

聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
發(fā)表評(píng)論
更多 網(wǎng)友評(píng)論0 條評(píng)論)
暫無評(píng)論

返回頂部

主站蜘蛛池模板: 亚洲中文字幕av每天更新| 阿v免费在线观看| 久久综合噜噜激激的五月天| 日本a∨在线观看| 羞羞视频免费网站入口| av在线手机播放| 亚洲午夜精品久久久久久人妖| 国产亚洲精品精品国产亚洲综合| 少妇无码av无码专区线| 欧美网站在线观看| 韩国朋友夫妇:交换4| a√天堂中文在线最新版| 二级毛片免费观看全程| 再深点灬用力灬太大了| 国产精品免费久久久久影院| 无码一区二区三区在线观看| 爱情鸟第一论坛com高清免费| 国产91小视频| gogogo高清在线播放| 久久精品一区二区东京热| 亚洲精品nv久久久久久久久久| 国产国语高清在线视频二区| 国产高清免费在线观看| 日本www.色| 最近免费中文字幕大全| 男女性色大片免费网站| 韩国免费观看高清完整| 91福利视频导航| 一本一本久久a久久精品综合| 久久精品桃花综合| 亚洲欧美卡通另类| 免费五级在线观看日本片| 国产乱理伦片a级在线观看| 国产激情一区二区三区| 国内精品伊人久久久久妇| 小嫩妇又紧又嫩好紧视频| 日本伊人精品一区二区三区| 欧美xxxx成人免费网站| 清纯校花被色老头糟蹋| 秦老头大战秦丽娟无删节| 色8久久人人97超碰香蕉987|