XML pull解析
来源:互联网 发布:打印机服务器软件 编辑:程序博客网 时间:2024/06/03 23:42
XML返回实例
<song_list list="true"><song><artist_id>88</artist_id><language>国语</language><pic_big>http://musicdata.baidu.com/data2/pic/f201bdf2c3c41cef7b74985aee3b7e23/266941936/266941936.jpg</pic_big><pic_small>http://musicdata.baidu.com/data2/pic/c4ed8fc38ecc1d69c87e5c5183fe3f65/266941939/266941939.jpg</pic_small><country>内地</country><area>0</area><publishtime>2016-06-23</publishtime><album_no>1</album_no><lrclink>http://musicdata.baidu.com/data2/lrc/60902a2420610e8d3ac7ee2f9e754dc1/266942158/266942158.lrc</lrclink><copy_type>1</copy_type><hot>750172</hot><all_artist_ting_uid>2517</all_artist_ting_uid><all_artist_id>88</all_artist_id><style>影视原声</style><all_rate>64,128,256,320,flac</all_rate><versions>影视原声</versions><song_id>266942077</song_id><title>我好像在哪见过你</title><ting_uid>2517</ting_uid><author>薛之谦</author><album_id>266941947</album_id><album_title>我好像在哪见过你</album_title><artist_name>薛之谦</artist_name></song>
XML PULL 解析
public static List<Music> parseMusicList(InputStream is) throws Exception { //创建XmlPull解析器 XmlPullParser parser = Xml.newPullParser(); //设置解析器的输入流,和解析编码 parser.setInput(is, "utf-8"); //获取事件类型 int eventType = parser.getEventType(); //创建Musics集合 List<Music> musics = new ArrayList<Music>(); //设置实体类Music为null Music music = null; //使用while循环进行事件驱动 while (eventType != XmlPullParser.END_DOCUMENT) { //判断事件类型 switch (eventType) { //事件类型是开始标签 case XmlPullParser.START_TAG: String name = parser.getName(); //如果名字是(song) if (name.equals("song")) { music = new Music();//创建实体类music musics.add(music);//添加到music集合中 } else if (name.equals("pic_big")) {//如果名字是(pic_big) //把pic_big的属性值赋给music实体类中 music.setPic_big(parser.nextText()); } else if (name.equals("pic_small")) { music.setPic_small(parser.nextText()); } else if (name.equals("publishtime")) { music.setPublishtime(parser.nextText()); } else if (name.equals("lrclink")) { music.setLrclink(parser.nextText()); } else if (name.equals("song_id")) { music.setSong_id(parser.nextText()); } else if (name.equals("title")) { music.setTitle(parser.nextText()); } else if (name.equals("author")) { music.setAuthor(parser.nextText()); } else if (name.equals("album_id")) { music.setAlbum_id(parser.nextText()); } else if (name.equals("album_title")) { music.setAlbum_title(parser.nextText()); } else if (name.equals("artist_name")) { music.setArtist_name(parser.nextText()); } break; } //向后继续驱动事件 eventType = parser.next(); } return musics;}
PULL解析是使用事件驱动的方式,边读取边解析。
当PULL解析器遇到文档中的某个节点时,都会触发
相应事件,我们可以捕获这些事件,并且在该时间
点解析相关内容。
如何使用PULL的方式解析xml?
1>创建xmlpull解析器:
XmlPullParser parser = Xml.newPullParser();
parser.setInput(is);
2>获取事件类型,并且配合while循环,不断驱动事件
并且解析文档内容:
int type=parser.getEventType();
while(type != XmlPullParser.END_DOCUMENT){
根据事件类型解析文档
向后继续驱动事件
type = parser.next();
}
0 0
- XML解析Pull解析
- XML解析---PULL解析
- XML的pull解析
- Pull解析XML文件
- Pull详解解析xml
- Pull解析Xml方式
- Android Pull解析xml
- pull解析xml
- xml解析(PULL)
- Pull 解析xml
- android pull 解析xml
- pull解析xml
- PULL解析XML
- android PULL 解析XML
- Android Pull解析xml
- Pull解析xml文件
- Android Pull 解析 XML
- Android Pull 解析 XML
- vb.net ファイル圧縮・解凍など
- E - 4 Values whose Sum is 0
- 【codeup 1934】找x
- 15.行属性标签在包裹文字使用时,不需要设置宽高
- iOS 瀑布流基本实现
- XML pull解析
- ARC所有权修饰符---__strong修饰符
- OpenCV使用FileStorage保存Mat数据
- spring2.5.6在jdk1.8环境下运行的问题
- 设计模式之状态模式——随遇而安
- MinGW静态编译windows QT5.x
- HDU 1234 开门人和关门人
- tomcat配置文件server.xml详解
- VB程序学习代码记录20160721