黑马程序员技术交流社区
标题:
请问怎么解析xml多级标签
[打印本页]
作者:
xingyunjunjun
时间:
2014-12-8 13:22
标题:
请问怎么解析xml多级标签
<?xml version="1.0" encoding="utf-8"?>
<authorization>
<subject type="USER" id="3" title="lihao" />
<object type="BOOK" id="36680525054738531" title="配置工具使用说明.pdf" />
<duration startTime = "2014-12-02" stopTime = "2014-12-03" / >
<usageRestriction>
<item type="read" duration = "2014-12-02|2014-12-03" maxCount="1" / >
<item type="copy" />
<item type="print" />
</usageRestriction>
<bindingDevice>
<item type="Android Phone" id="00000000-314e-2752-0033-c5870033c587" title="pad" />
</bindingDevice>
<verson>
<item type="version" id="version" title="1" />
<item type="issuer" id="issuer" title="1" />
</verson>
</authorization>
这样的xml文件要怎么解析,求解决
作者:
陈君
时间:
2014-12-8 18:26
PULL解析
作者:
默默丶
时间:
2014-12-8 19:18
XmlPullParser对象android专用的XML解析方式
public class WeatherService {
/**
*
*
* @param in
* @return
*/
public static List<Channel> getWeather(InputStream in) {
// 1
XmlPullParser parser = Xml.newPullParser();
// 2
try {
parser.setInput(in, "utf-8");
List<Channel> smsLists = null;
Channel channel = null;
// 3
int type = parser.getEventType(); //
while (type != XmlPullParser.END_DOCUMENT) { //
switch (type) {
case XmlPullParser.START_TAG:
if ("weather".equals(parser.getName())) {
smsLists = new ArrayList<Channel>();
} else if ("channel".equals(parser.getName())) {
channel = new Channel();
String id = parser.getAttributeValue(0);
channel.setId(id);
} else if ("city".equals(parser.getName())) {
String city = parser.nextText();
channel.setCity(city);
} else if ("temp".equals(parser.getName())) {
String temp = parser.nextText();
channel.setTemp(temp);
} else if ("wind".equals(parser.getName())) {
String wind = parser.nextText();
channel.setWind(wind);
} else if ("pm2.5".equals(parser.getName())) {
String pm250 = parser.nextText();
channel.setPm250(pm250);
}
break;
case XmlPullParser.END_TAG:
if ("channel".equals(parser.getName())) {
smsLists.add(channel);
}
break;
default:
break;
}
type = parser.next();
}
return smsLists;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2