Android 解析XML
public void getXML(String url) throws XmlPullParserException,IOException,URISyntaxException
{
String xmlString=downloadXML(url); XmlPullParserFactory factory=XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser parser=factory.newPullParser(); parser.setInput(new StringReader(xmlString)); int eventType=parser.getEventType(); List<Forecast_conditions> conditionsList=new ArrayList<Forecast_conditions>();
Forecast_conditions forecast_conditions=null; while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_DOCUMENT) {
System.out.println("Start Document");
}else if (eventType== XmlPullParser.START_TAG) {
System.out.println("Start Tag "+parser.getName()); if (parser.getName().equals("forecast_conditions"))
{
forecast_conditions=new Forecast_conditions();
} if (parser.getName().equals("day_of_week")) {
forecast_conditions.setDay_of_week(parser.getAttributeValue(0)); }else if (parser.getName().equals("low")) { forecast_conditions.setLow(parser.getAttributeValue(0));
}else if (parser.getName().equals("high")) { forecast_conditions.setHigh(parser.getAttributeValue(0));
}else if (parser.getName().equals("icon")) { try {
forecast_conditions.setIcon(parser.getAttributeValue(0));
} catch (Exception e) {
// TODO: handle exception
} }else if (parser.getName().equals("condition")) { try {
forecast_conditions.setCondition(parser.getAttributeValue(0));
} catch(Exception e){ } } /* int size=parser.getAttributeCount(); for (int i = 0; i < size; i++) {
System.out.println("AttributeName "+parser.getAttributeName(i));
System.out.println("AttributeValue"+parser.getAttributeValue(i));
} */
}else if(eventType== XmlPullParser.END_TAG){
System.out.println("End Tag "+parser.getName());
if (parser.getName().equals("forecast_conditions")) {
conditionsList.add(forecast_conditions);
} }else if(eventType==XmlPullParser.TEXT){
System.out.println("Text "+parser.getText());
} eventType=parser.next();
}
System.out.println("End Document"); bindToListView(conditionsList);
//XmlUtils. }
01.package com.st.demo;
02.
03.import java.io.File;
04.import java.io.FileInputStream;
05.import java.io.InputStream;
06.
07.import javax.xml.parsers.DocumentBuilder;
08.import javax.xml.parsers.DocumentBuilderFactory;
09.
10.import org.w3c.dom.Document;
11.import org.w3c.dom.Element;
12.import org.w3c.dom.Node;
13.import org.w3c.dom.NodeList;
14.
15.public class XmlReader {
16. public static void main(String[] args) {
17. XmlReader reader = new XmlReader();
18. }
19. public XmlReader(){
20. DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
21. try {
22. DocumentBuilder domBuilder = domfac.newDocumentBuilder();
23. InputStream is = new FileInputStream(new File("D:/test1.xml"));
24. Document doc = domBuilder.parse(is);
25. Element root = doc.getDocumentElement();
26. NodeList books = root.getChildNodes();
27. if(books!=null){
28. for (int i = 0; i < books.getLength(); i++) {
29. Node book = books.item(i);
30. if(book.getNodeType()==Node.ELEMENT_NODE) {
31. //(7)取得节点的属性值
32. String email=book.getAttributes().getNamedItem("email").getNodeValue();
33. System.out.println(email);
34. //注意,节点的属性也是它的子节点。它的节点类型也是Node.ELEMENT_NODE
35. //(8)轮循子节点
36. for(Node node=book.getFirstChild();node!=null;node=node.getNextSibling()) {
37. if(node.getNodeType()==Node.ELEMENT_NODE) {
38. if(node.getNodeName().equals("name")) {
39. String name=node.getNodeValue();
40. String name1=node.getFirstChild().getNodeValue();
41. System.out.println(name);
42. System.out.println(name1);
43. }
44. if(node.getNodeName().equals("price")) {
45. String price=node.getFirstChild().getNodeValue();
46. System.out.println(price);
47. }
48. }
49. }
50. }
51. }
52. }
53. } catch (Exception e) {
54. // TODO Auto-generated catch block
55. e.printStackTrace();
56. }
57.
58. }
59.}
Android 解析XML的更多相关文章
- android解析XML总结(SAX、Pull、Dom三种方式) <转载>
android解析XML总结(SAX.Pull.Dom三种方式) http://www.cnblogs.com/JerryWang1991/archive/2012/02/24/2365507.htm ...
- android解析xml文件的方式
android解析xml文件的方式 作者:东子哥 ,发布于2012-11-26,来源:博客园 在androd手机中处理xml数据时很常见的事情,通常在不同平台传输数据的时候,我们就可能使用xm ...
- Android 解析XML文件和生成XML文件
解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...
- Android解析XML(PULL方式)
PULL 的工作原理: XML pull提供了开始元素和结束元素.当某个元素开始时,可以调用parser.nextText从XML文档中提取所有字符数据.当解析到一个文档结束时,自动生成EndDocu ...
- android 解析XML方式(三)
上一节中,我们使用SAX方式解析xml文档, SAX方式是基于事件驱动的.当然android的事件机制是基于回调函数的.在这一节中,我们用另外一种方式解析xml文档,这种方式也是基于事件驱动的,与SA ...
- android 解析XML方式(二)
上一节中,我们使用DOM方式解析xml文档,该方式比较符合我们日常思维方式,容易上手,但是它直接把文档调入内存中,比较耗内存.在这里我们可以用另外一种方式解析xml,这个就是SAX方式. SAX即是: ...
- android 解析XML方式(一)
在androd手机中处理xml数据时很常见的事情,通常在不同平台传输数据的时候,我们就可能使用xml,xml是与平台无关的特性,被广泛运用于数据通信中,那么在android中如何解析xml文件数据呢? ...
- Android解析XML
在Android平台上可以使用Simple API for XML(SAX) . Document Object Model(DOM)和Android附带的pull解析器解析XML文件. 下面是本例子 ...
- Android解析xml文件-采用DOM,PULL,SAX三种方法解析
解析如下xml文件 <?xml version="1.0" encoding="UTF-8"?> <persons> <perso ...
- android解析xml文件方法之一-----DOM
Hello.xml文件 <dict num="219" id="219" name="219"> <key>hell ...
随机推荐
- CLI结果输出
例子:FTP::11.245.253.20_CIPS_dev_bak\/opt/IBM/db2/V9.7/samples/ 要不要修改整体结构,先看看细节 CLI结果输出: 1. 逐条的获取--确定产 ...
- Java多线程(二) 多线程的锁机制
当两条线程同时访问一个类的时候,可能会带来一些问题.并发线程重入可能会带来内存泄漏.程序不可控等等.不管是线程间的通讯还是线程共享数据都需要使用Java的锁机制控制并发代码产生的问题.本篇总结主要著名 ...
- 《APUE》第五章笔记
第五章具体介绍了标准I/O库的各种细节,要是一一列出来,有费精力且可能列不全,故只讲平常多用到的.标准输入输出是由一大批函数组成的. 要记住,标准输入输出是有缓冲的,就是当缓冲区的数据满了的时候,才会 ...
- QQ音乐API分析记录
我一直是QQ音乐的用户,最近想做一个应用,想用QQ音乐的API,搜索了很久无果,于是就自己分析QQ音乐的API. 前不久发现QQ音乐出了网页版的,是Flash的,但是,我用iPhone打开这个链接的时 ...
- C#反编译工具 ILSPY-x64可动态调试-君临汉化版
程序基于著名的ILSpy version 2.1.0.1603 汉化,并增加x64下debugging功能;初衷是网上只有一版是原作者留下的x86版本,实在不想在虚拟机里调试,只有自己动手弄一份x64 ...
- nodejs npm install全局安装和本地安装的区别
npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如:代码如下:复制代码npm install # 本地安装npm install - ...
- cxgrid footer summary value by a column
var AIndex: integer; AValue: variant; begin with cxGrid1DBTableView1.DataController.Summary do begin ...
- Linux ps 命令获取查询结果中的单列信息
1.查看所有进程信息,但是只想获取COMMAND列的值 SDCxM-SDCAM-root-root> ps auxUSER PID %CPU %MEM VSZ RSS TT ...
- PhantomJS实现最简单的模拟登录方案
以前写爬虫,遇到需要登录的页面,一般都是通过chrome的检查元素,查看登录需要的参数和加密方法,如果网站的加密非常复杂,例如登录qq的,就会很蛋疼 在后面,有了Pyv8,就可以把加密的js文件扔给它 ...
- 2016 Multi-University Training Contest 1 Necklace 环排+二分匹配
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5727 题意:由2*N颗宝石构成的环(阴阳宝石均为N颗且标号均从1~N) 之后给定M组 a,b;表示阳宝石a ...