Android解析Xml字串例子
阿新 • • 發佈:2019-01-10
package a.test; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import biz.source_code.base64Coder.Base64Coder; import a.test.ExampleHandler; import a.test.ParsedExampleDataSet; import android.app.Activity; import android.os.Bundle; import android.util.Xml; import android.widget.EditText; import android.widget.TextView; public class b extends Activity { /** Called when the activity is first created. */ EditText tv1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv1 = (EditText) findViewById(R.id.tv); tv1.setText("000"); String xml = "<VCOM version='1.1'><loginlink>11111023</loginlink><errmsg>dfft</errmsg></VCOM>"; tv1.setText(xml); ByteArrayInputStream tInputStringStream = null; try { if (xml != null && !xml.trim().equals("")) { tInputStringStream = new ByteArrayInputStream(xml.getBytes()); } } catch (Exception e) { // TODO: handle exception tv1.setText(e.getMessage()); return; } XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(tInputStringStream, "UTF-8"); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_DOCUMENT:// 文件開始事件,可以進行資料初始化處理 // persons = new ArrayList<Person>(); break; case XmlPullParser.START_TAG:// 開始元素事件 String name = parser.getName(); if (name.equalsIgnoreCase("errmsg")) { // currentPerson = new Person(); // currentPerson.setId(new // Integer(parser.getAttributeValue(null, "id"))); tv1.setText(parser.nextText()); } // else if (currentPerson != null) { // if (name.equalsIgnoreCase("loginlink")) { // currentPerson.setName(parser.nextText());// 如果後面是Text節點,即返回它的值 // } else if (name.equalsIgnoreCase("errmsg")) { // currentPerson.setAge(new Short(parser.nextText())); // } // } break; case XmlPullParser.END_TAG:// 結束元素事件 // if (parser.getName().equalsIgnoreCase("person") // && currentPerson != null) { // persons.add(currentPerson); // currentPerson = null; // } break; } eventType = parser.next(); } tInputStringStream.close(); // return persons; } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }