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 ...
随机推荐
- ZigBee 入网详解
本文将根据Sniffer来详细解释ZigBee终端设备入网的整个流程,原创博文. 当协调器建立好网络后,终端设备执行zb_startrequest函数,准备入网时,他们两者之间详细的流程如下.
- HDU1857题解(逆向思维trie)
题目link:http://acm.hdu.edu.cn/showproblem.php?pid=1857 先简述一下题目: 有一个RXC的字母矩形,R,C在500内,要匹配m个单词,m在100000 ...
- 【转】JavaScript中undefined与null的区别
通常情况下, 当我们试图访问某个不存在的或者没有赋值的变量时,就会得到一个undefined值.Javascript会自动将声明是没有进行初始化的变量设为undifined. 如果一个变量根本不存在会 ...
- Android 源码VecotorDrawable
1 R.styleable.VectorDrawable_viewportWidth 该资源的名字并非VectorDrawable_viewportWidth 而是 attrs.xml 下的声明 &l ...
- [Linux]学习笔记(2)
本节主要学习: whoami who am i who w users tty 6个命令的用法. (1)whoami whoami用于查询当前是以哪个用户登录Linux系统: [root@linuxf ...
- 【DELPHI】线程相关
//准备让线程调用的测试函数 procedure Draw(aCanvas: TCanvas; X,Y: Integer; aCount: Integer = 100000); var i: Inte ...
- laravel扩展图片处理Intervention Image
github地址:https://github.com/Intervention/image
- CLR via C# 异常管理读书笔记
1. 设计异常类型层次结构应该浅而宽 2. 注意使用finally块清理资源 3. 不要什么都捕捉 4.得体地从异常中恢复 5.发生不可恢复的异常时回滚部分完成的操作-维持状态 6.隐藏实现细节来维系 ...
- XAML系列学习
在XAML中为属性赋值 1.使用Attribute=value形式 <Rectangle Width="100" Height="100" Stroke= ...
- Session_set_save_handler 之 文本模式实现
1.构建session抽象类,实现Session_set_save_hanlder函数必须的基础函数 <?php /* 实现session利用文件形式或者数据库等其它形式进行存储操作 * aut ...