频道栏目
IT货架 > > 正文
非常简单的XML解析(SAX解析、pull解析)
网友分享于:Jan 1, 1970 8:00:00 AM    来源: IT货架   
这里只是把解析的数据当日志打出来了 非常简单的xml解析方式 1 package com.example.demo.service; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 6 import javax.xml.parsers.DocumentBuilder; 7 import javax.xml.parsers.DocumentBuilderFactory; 8 import javax.xml.parsers.ParserConfigurationException; 9 import javax.xml.parsers.SAXParser; 10 import javax.xml.parsers.SAXParserFactory; 11 12 import org.w3c.dom.Document; 13 import org.w3c.dom.Node; 14 import org.w3c.dom.NodeList; 15 import org.xml.sax.Attributes; 16 import org.xml.sax.SAXException; 17 import org.xml.sax.helpers.DefaultHandler; 18 import org.xmlpull.v1.XmlPullParser; 19 20 import android.renderscript.Element; 21 import android.util.Log; 22 import android.util.Xml; 23 24 public class PullXMLService { 25 /** 26 * 27 * pull解析 28 * @param is xml输入 29 * @return 30 * @throws Exception 31 */ 32 public String pullParser(InputStream is) throws Exception { 33 34 XmlPullParser parser = Xml.newPullParser(); 35 //设置编码,编码不对解析不出来 36 parser.setInput(is, "GBK"); 37 //接收事件类型 38 int type =parser.getEventType(); 39 //事件类型不为END_DOCUMENT 继续循环 40 while (type!=XmlPullParser.END_DOCUMENT) { 41 switch (type) {//判断事件类型是否开始元素 42 case XmlPullParser.START_TAG: 43 //是开始元素开始有条件的解析 44 if("hunan".equals(parser.getName())){ 45 Log.e("ss", parser.getAttributeValue(0)); 46 }else if("city".equals(parser.getName())){ 47 //取属性,可以下标取,也可以属性名称取 48 Log.e("ss", "城市:"+parser.getAttributeValue(2)+"天气:"+parser.getAttributeValue(8)+"温度:"+parser.getAttributeValue(10)+"-"+parser.getAttributeValue(9)+"实时温度"+parser.getAttributeValue(11)+"风力:"+parser.getAttributeValue(12)+"湿度:"+parser.getAttributeValue(14)+"时间:"+parser.getAttributeValue(15)+"");
相关板块推荐

广告服务联系QQ:1134687142 | 网站地图

版权所有: IT货架- 内容来自互联网,仅供用于技术学习,请遵循相关法律法规. 京ICP备11030978号-1