Android 解析xml檔案
阿新 • • 發佈:2019-01-23
Android 中原始的xml檔案一般儲存在/res/xml路徑下,在用ADT開發中沒有該檔案,需要自己去建立一個xml的資料夾
成功定義一個xml資源後,在工程中若要引用該xml檔案
1 在xml檔案中引用語法
xml.file_name
2 在java程式碼中語法格式:
R.xml.file_name;
在java程式中獲取實際的xml文件,可以通過Resources的兩個方法來獲取:
1 XmlResourceParse getXml(int id): 獲取xml文件,並使用一個XmlPullParser來解析該xml文件,該方法返回一個解析器物件
2 InputStream openRawResource(int id) :獲取XML文件對應的輸出流
程式碼:
<?xml version="1.0" encoding="utf-8"?>
<books>
<book price="99.0" time="2011" >Ajax講義</book>
<book price="99.0" time="2009" >瘋狂android講義</book>
<book price="99.0" time="2010" >Ajax講義</book>
</books>
java程式碼
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = (Button)findViewById(R.id.btn1); OnClickListener listen = new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub XmlResourceParser xrp = getResources().getXml(R.xml.books);//獲取xml文件 try { StringBuilder sb = new StringBuilder(""); while(xrp.getEventType() != XmlResourceParser.END_DOCUMENT)//判斷有沒有到文件的結尾處 { if(xrp.getEventType() == XmlResourceParser.START_TAG)//遇到開始標籤 { String tagName = xrp.getName();//獲取標籤的標籤名 if(tagName.equals("book")) { String bookprice = xrp.getAttributeValue(null, "price"); sb.append("價格"); sb.append(bookprice); String booktime = xrp.getAttributeValue(1);//通過屬性索引來獲取屬性值 sb.append(" 出版日期"); sb.append(booktime); sb.append("書名"); sb.append(xrp.nextText());//獲取文字節點的值 } sb.append("\n"); } xrp.next();//游標下移 } TextView show = (TextView)findViewById(R.id.text1); show.setText(sb.toString()); } catch(XmlPullParserException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } } }; btn.setOnClickListener(listen); }