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的更多相关文章

  1. android解析XML总结(SAX、Pull、Dom三种方式) <转载>

    android解析XML总结(SAX.Pull.Dom三种方式) http://www.cnblogs.com/JerryWang1991/archive/2012/02/24/2365507.htm ...

  2. android解析xml文件的方式

    android解析xml文件的方式   作者:东子哥 ,发布于2012-11-26,来源:博客园   在androd手机中处理xml数据时很常见的事情,通常在不同平台传输数据的时候,我们就可能使用xm ...

  3. Android 解析XML文件和生成XML文件

    解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...

  4. Android解析XML(PULL方式)

    PULL 的工作原理: XML pull提供了开始元素和结束元素.当某个元素开始时,可以调用parser.nextText从XML文档中提取所有字符数据.当解析到一个文档结束时,自动生成EndDocu ...

  5. android 解析XML方式(三)

    上一节中,我们使用SAX方式解析xml文档, SAX方式是基于事件驱动的.当然android的事件机制是基于回调函数的.在这一节中,我们用另外一种方式解析xml文档,这种方式也是基于事件驱动的,与SA ...

  6. android 解析XML方式(二)

    上一节中,我们使用DOM方式解析xml文档,该方式比较符合我们日常思维方式,容易上手,但是它直接把文档调入内存中,比较耗内存.在这里我们可以用另外一种方式解析xml,这个就是SAX方式. SAX即是: ...

  7. android 解析XML方式(一)

    在androd手机中处理xml数据时很常见的事情,通常在不同平台传输数据的时候,我们就可能使用xml,xml是与平台无关的特性,被广泛运用于数据通信中,那么在android中如何解析xml文件数据呢? ...

  8. Android解析XML

    在Android平台上可以使用Simple API for XML(SAX) . Document Object Model(DOM)和Android附带的pull解析器解析XML文件. 下面是本例子 ...

  9. Android解析xml文件-采用DOM,PULL,SAX三种方法解析

    解析如下xml文件 <?xml version="1.0" encoding="UTF-8"?> <persons> <perso ...

  10. android解析xml文件方法之一-----DOM

    Hello.xml文件 <dict num="219" id="219" name="219"> <key>hell ...

随机推荐

  1. Poj 2840 Big Clock

    1.Link: http://poj.org/problem?id=2840 2.Content: Big Clock Time Limit: 1000MS   Memory Limit: 13107 ...

  2. android源码-安卓源码-Android源码下载-安卓游戏源码

    android源码   高仿精仿金山手机卫士应用源码V1.2 高仿精仿金山手机卫士应用源码,该应用的级别实现了金山卫士的级别功能了,可以说跟现实中我们使用的金山卫士应用的功能几乎差不 人气:9286  ...

  3. 关于apache Alias斜杠/的实验

    1.Alias /icons/ "D:/wamp/bin/apache/Apache2.2.17/icons/" 访问http://localhost/icons/正常,访问htt ...

  4. JS滑动门,JQuery滑动门

    <a href="#" id="one1" onmouseover="setTab('one',1,2)" class="h ...

  5. 前端工程模块化——以一个php项目为例

    实现一个页面功能总是需要 JavaScript.CSS 和 Template 三种语言相互组织,所以我们真正需要的是一种可以将 JavaScript.CSS 和 Template 同时都考虑进去的模块 ...

  6. linux之cat命令

    1. cat 接普通文件名,会把文件内容打印到屏幕:2. cat > file,这个可以向文件“file”写入内容,最后按 Ctrl + D 结束输入,会将你输入的数据保存到文件. cat主要有 ...

  7. 大型网站用什么技术比较好,JSP,PHP,ASP.NET

    大型网站,我建议要考虑的问题: 首先讨论一下大型网站需要注意和考虑的问题. 数据库海量数据处理:负载量不大的情况下select.delete和update是响应很迅速的,最多加几个索引就可以搞定,但千 ...

  8. Eclipse 中隐藏的 5 个非常有用的功能

    Eclipse就是一头野兽.它也是一套设备,神秘但更具威力.有些人称它为一个持续变形机.另一些人则称它是一个变异体.不错,它很庞大,需要花费多年才能掌握.而在你好不容易掌握之后,你的老板出现了然后告诉 ...

  9. 【cheerio】nodejs的抓取页面模块

    http://baike.baidu.com/link?url=8V1CZsEzNE05ujOzISquom_pvFj16sWu1rRb8js11pmd9HNq7ePW_aKfG9oyXj6Txuu5 ...

  10. easy ui 下拉框绑定数据select控件

    easy ui 中的下拉框控件叫做select,具体代码如下: html代码:①.这是一个公司等级的下拉框 <tr> <td>公司等级:</td> <td&g ...