XmlPullParser(安卓推薦)

來源:互聯網
上載者:User

標籤:

添加xml檔案XmlPullParser

package com.it.heima.review;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.OutputStream;import org.xmlpull.v1.XmlSerializer;import android.R.xml;import android.os.Bundle;import android.app.Activity;import android.text.TextUtils;import android.util.Xml;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.RadioGroup;import android.widget.Toast;public class MainActivity extends Activity {    private EditText ed_ssname;    private RadioGroup rgb;    private Button btnButton;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btnButton = (Button) findViewById(R.id.btnSave);        ed_ssname = (EditText) findViewById(R.id.ed_name);        rgb = (RadioGroup) findViewById(R.id.rgb);        btnButton.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                String studentname = ed_ssname.getText().toString().trim();                String sex;                if (TextUtils.isEmpty(studentname)) {                    Toast.makeText(getApplicationContext(), "ssss", 0);                } else {                    int id = rgb.getCheckedRadioButtonId();                    if (id == R.id.male) {                        sex = "男";                    } else {                        sex = "女";                    }                    File file = new File(getFilesDir(), studentname + ".xml");                    try {                        OutputStream out = new FileOutputStream(file);                        XmlSerializer serializer = Xml.newSerializer();                        serializer.setOutput(out, "utf-8");                        serializer.startDocument("utf-8", true);                        serializer.startTag(null, "name");                        serializer.text(studentname);                        serializer.endTag(null, "name");                        serializer.startTag(null, "sex");                        serializer.text(sex);                        serializer.endTag(null, "sex");                        serializer.endDocument();                        Toast.makeText(getApplicationContext(), "sucess", 0);                    } catch (Exception e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                }            }        });    }}

解析

package com.itheima.pullparser;import java.io.IOException;import java.io.InputStream;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import com.itheima.pullparser.domain.Product;import android.os.Bundle;import android.app.Activity;import android.util.Xml;import android.view.Menu;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                //使用 xml  pull 解析器 去 解析 xml 檔案的內容                // Xml        XmlPullParser pullParser = Xml.newPullParser();                try {            InputStream in = getAssets().open("result.xml");                        // 解析的源 是什麼 ???  --- result.xml            pullParser.setInput(in, "gbk");                        //獲得 一個 事件的 類型             int eventType = pullParser.getEventType();/*<?xml version="1.0" encoding="gbk"?><smartresult>  <product type="mobile">    <phonenum>13512345678</phonenum>    <location>重慶移動神州行卡</location>    <phoneJx>有得有失,華而不實,須防劫財,始保平安 吉帶凶</phoneJx> </product></smartresult> *              */            Product p=null;            while(eventType!=XmlPullParser.END_DOCUMENT){                                if(eventType==XmlPullParser.START_TAG){                                        //判斷是否是 元素的開始 , 只要是某個 元素的開始位置, 那麼就會進入這裡                     //獲得 當前解析到的元素的名稱                    if("product".equals(pullParser.getName())){                        p = new Product();                        // sax 解析                                                 //準備 product 類的一個執行個體 , 去 封裝資料                        String type = pullParser.getAttributeValue(0);                        p.setType(type);                    }else if("phonenum".equals(pullParser.getName())){                                                //獲得   13512345678                                                // <phonenum>13512345678</phonenum>                        String phonenum = pullParser.nextText();                        p.setPhonenum(phonenum);                    }else if("location".equals(pullParser.getName())){                                                //<location>重慶移動神州行卡</location>                        String location = pullParser.nextText();                        p.setLocation(location);                    }else if("phoneJx".equals(pullParser.getName())){                        //                        <phoneJx>有得有失,華而不實,須防劫財,始保平安 吉帶凶</phoneJx>                        String phoneJx = pullParser.nextText();                        pullParser.getText();                        p.setPhoneJx(phoneJx);                    }                }                //手動 挪動 "指標 "                eventType = pullParser.next();            }                        if(p!=null){                System.out.println(p.toString());            }                    } catch (Exception e) {            e.printStackTrace();        }                    }}

 

XmlPullParser(安卓推薦)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.