標籤:android style blog http ar io color os sp
假設我要解析如下的XML檔案:
1 <?xml version="1.0" encoding="UTF-8"?>2 <books>3 <book price="99.0" 出版日期="2008年">瘋狂java講義</book>4 <book price="199.0" 出版日期="2009年">瘋狂android講義</book>5 <book price="79.0" 出版日期="2010年">瘋狂講義</book>6 </books>
首先將該檔案放到res/xml檔案夾下,如果沒有可以手動建立,然後解析代碼如下:
1 public void xmlparser(View v) { 2 3 XmlResourceParser xmlResourceParser = getResources().getXml(R.xml.books);// 擷取xml檔案的解析器 4 try { 5 StringBuilder sb = new StringBuilder(); 6 while (xmlResourceParser.getEventType() != XmlResourceParser.END_DOCUMENT) {// 如果沒有到文檔的結尾處 7 if (xmlResourceParser.getEventType() == XmlResourceParser.START_TAG) {// 如果遇到標籤的開始標記,就開始讀取類容 8 // 擷取標籤的簽名 9 String tagName = xmlResourceParser.getName();10 if (tagName.equals("book")) {11 12 String bookPrice = xmlResourceParser.getAttributeValue(0);// 擷取標籤中的第一個屬性的值,這裡是“price”的值13 String bookdata = xmlResourceParser.getAttributeValue(1);// 擷取標籤中的第二個屬性的值,這裡是“出版日期”的值14 String bookName = xmlResourceParser.nextText();// 擷取文本節點的值,這裡是書的名字15 16 sb.append("價格:");17 sb.append(bookPrice);18 sb.append("出版日期:");19 sb.append(bookdata);20 sb.append("書名:");21 sb.append(bookName);22 sb.append("\n");23 }24 25 }26 xmlResourceParser.next();// 擷取解析器的下一個事件27 28 }29 30 textView.setText(sb.toString());31 32 } catch (XmlPullParserException e) {33 e.printStackTrace();34 35 } catch (IOException e) {36 e.printStackTrace();37 }38 39 }
解析後的結果如下:
Android中解析XML的方法