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

    Android XML解析使用SAX解析器

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

    SAX解析器相對于DOM的優勢

    它占用的內存較少。愛掏網 - it200.com

    Android SAX Xml解析示例

    activity_main.xml

    從工具箱中拖動一個文本視圖。愛掏網 - it200.com現在,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文檔

    在您的項目的assets目錄中創建名為file.xml的xml文件。愛掏網 - 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類

    現在編寫代碼使用sax解析器解析xml。愛掏網 - 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();}
    }
    }
    
    

    下載此示例

    輸出:

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 射精专区一区二区朝鲜| 亚洲国产精品一区二区成人片国内| 亲子乱AV视频一区二区| 综合人妻久久一区二区精品| 麻豆AV无码精品一区二区| 杨幂AV污网站在线一区二区| 伊人久久精品一区二区三区| 国精无码欧精品亚洲一区| 亚洲国产精品一区二区三区在线观看| 国产大秀视频一区二区三区| 人妻在线无码一区二区三区| 国产精品熟女一区二区| 日本一区二区三区在线看| 亚洲精品精华液一区二区| 亚洲熟妇av一区| 无码少妇一区二区三区| 久久精品国产亚洲一区二区三区| 久久久久久人妻一区二区三区| 91视频一区二区| 97久久精品无码一区二区天美| 无码人妻AⅤ一区二区三区| 成人无码AV一区二区| 久久精品国产一区二区三区日韩| 国产免费播放一区二区| 三上悠亚亚洲一区高清| 日本一区午夜艳熟免费| 久草新视频一区二区三区| 狠狠色婷婷久久一区二区| 亚洲AV无码一区二区二三区软件 | 亚洲一区二区三区电影| 国产一区二区三区高清在线观看| A国产一区二区免费入口| 日韩人妻无码一区二区三区综合部 | 精品国产一区二区三区久久蜜臀 | 国产乱码精品一区二区三区中文| 日韩一区二区久久久久久| 国产精品综合AV一区二区国产馆| 夜夜精品视频一区二区| 国产人妖视频一区二区破除| 午夜视频久久久久一区 | 亚洲午夜一区二区三区|