- 浏览: 1225254 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
其实网上很多资料讲关于解析xml的问题,大多数我都看的一知半解,今天终于找了个不错的例子,放在这里跟大家共享:
先上代码:
1.DomParseXml.java文件
2.main.xml文件内容:
3.每次都强调下的一条:
另外我经常遇到在启动模拟器的时候那个模拟器连不上互联网,那个右上角的信号图标是个叉,我也不知道怎么修改,重新启动了下模拟器后就又可以联网了.不知道是什么原因,我们这种联网的应用如果在测试的时候没有注意到这的话,程序就会报错,说:
can't reach the host之类的,哪位兄弟姐妹知道是什么原因的话,麻烦告知一下,谢谢
另外附上查询到的xml文件:
先上代码:
1.DomParseXml.java文件
package cn.com; import java.io.File; import java.io.InputStreamReader; import java.net.URL; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; public class DomParseXml extends Activity implements OnClickListener { File fl; //这个地址返回的内容的xml文件我下面会贴上 //大家可以先跳过这个java文件看下xml文件结构 private final String net = "http://www.google.com/ig/api?hl=zh-cn&weather="; private String addr; ListView lv; ArrayAdapter<String> adapter; private EditText et; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bt = (Button) findViewById(R.id.bt); bt.setOnClickListener(this); //输入一个城市(wuhan或beijing等) et = (EditText) findViewById(R.id.et); } @Override public void onClick(View agr0) { // TODO Auto-generated method stub addr = et.getText().toString(); switch (agr0.getId()) { case R.id.bt: // 获取输入的内容,取出空格 if (!addr.trim().equals("")) { addr = net + addr; // System.out.println(addr); String[] data = null; // 将weather设置为根节点 // Node nRoot = root(addr,"weather").item(0); // 这里返回的是一个NodeList Node nRoot = root(addr, "forecast_information").item(0); // 获得孩子结点 NodeList child = nRoot.getChildNodes(); // 获得子节点的个数 7 int childSize = child.getLength(); System.out.println("**********childSize************" + childSize); data = new String[childSize]; for (int i = 0; i < childSize; i++) { // 第一个子节点,city Node nChild = child.item(i); // 获得子节点 if (nChild.hasAttributes()) { // 获得节点属性 data[i] = nChild.getAttributes().getNamedItem("data") .getNodeValue(); System.out.println("**********************" + data[i]); } } } setTitle(et.getText().toString()); // 显示查询的城市 break; } } private NodeList root(final String url, final String str) { NodeList root = null; try { InputSource is = new InputSource(new InputStreamReader(new URL(url) .openStream())); DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); DocumentBuilder dom = factory.newDocumentBuilder(); Document doc = dom.parse(is); root = doc.getElementsByTagName(str); } catch (Exception e) { e.printStackTrace(); } return root; } }
2.main.xml文件内容:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <EditText android:text="" android:id="@+id/et" android:layout_width="150dp" android:layout_height="wrap_content"></EditText> <Button android:text="button" android:id="@+id/bt" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout>
3.每次都强调下的一条:
<uses-permission android:name="android.permission.INTERNET"> </uses-permission>
另外我经常遇到在启动模拟器的时候那个模拟器连不上互联网,那个右上角的信号图标是个叉,我也不知道怎么修改,重新启动了下模拟器后就又可以联网了.不知道是什么原因,我们这种联网的应用如果在测试的时候没有注意到这的话,程序就会报错,说:
can't reach the host之类的,哪位兄弟姐妹知道是什么原因的话,麻烦告知一下,谢谢
另外附上查询到的xml文件:
<?xml version="1.0" ?> - <xml_api_reply version="1"> - <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0"> - <forecast_information> <city data="Beijing, Beijing" /> <postal_code data="beijing" /> <latitude_e6 data="" /> <longitude_e6 data="" /> <forecast_date data="2010-07-01" /> <current_date_time data="2010-07-02 00:00:00 +0000" /> <unit_system data="SI" /> </forecast_information> - <current_conditions> <condition data="晴" /> <temp_f data="73" /> <temp_c data="23" /> <humidity data="湿度: 83%" /> <icon data="/ig/images/weather/sunny.gif" /> <wind_condition data="风向: 北、风速:4 米/秒" /> </current_conditions> - <forecast_conditions> <day_of_week data="周四" /> <low data="21" /> <high data="33" /> <icon data="/ig/images/weather/chance_of_rain.gif" /> <condition data="可能有雨" /> </forecast_conditions> - <forecast_conditions> <day_of_week data="周五" /> <low data="22" /> <high data="33" /> <icon data="/ig/images/weather/sunny.gif" /> <condition data="晴" /> </forecast_conditions> - <forecast_conditions> <day_of_week data="周六" /> <low data="24" /> <high data="33" /> <icon data="/ig/images/weather/mostly_sunny.gif" /> <condition data="以晴为主" /> </forecast_conditions> - <forecast_conditions> <day_of_week data="周日" /> <low data="21" /> <high data="35" /> <icon data="/ig/images/weather/mostly_sunny.gif" /> <condition data="晴间多云" /> </forecast_conditions> </weather> </xml_api_reply>
发表评论
-
WebView加载网页进度条显示
2012-03-06 19:52 2345重写WebChromeClient一个方法进行进度条显示: ... -
基于UDP协议的数据交互例子
2011-12-18 11:06 1703直接贴上代码: 客户端: package com.exam ... -
一种更灵活的数据传输方式:HTTP(2)
2011-12-16 11:18 2987HTTP是大多数应用程序中常用的与服务端交互的通讯方式 ... -
一种更灵活的数据传输方式:HTTP(1)
2011-12-16 10:52 1948使用WebService虽然 ... -
重用WebView的cache图片文件
2011-09-15 15:06 2031如何从WebView使用的cache文件夹中重复使用一些图片资 ... -
开,关闭GPRS的简单Demo
2011-06-09 10:54 2731Android应用中开,关闭GPRS的简单Demo,可能在有的 ... -
Intent打开各种类型文件
2011-04-10 18:22 4419//android获取一个用于打开PPT文件的intent ... -
图片Url保存为位图并进行缩放操作
2010-10-12 15:33 13561.通过传入图片url获取位图方法: public Bit ... -
判断手机有无网络
2010-09-15 16:18 2839ConnectivityManager cwjManage ... -
GoogleMap(通过输入地址,查询显示在google 地图上)
2010-08-15 10:18 4651主Activity: package net.blogja ... -
Android手机使用中国电信天翼上网设置
2010-08-07 16:01 3843众所周知Android手机的上网功能需要用到APN(网络接入点 ... -
GPS取得卫星个数
2010-08-07 15:09 2937LocationManager manager = (Lo ... -
连接服务器超时的Demo
2010-08-05 11:49 2416下面这个例子是连接网络超时的例子: package cn. ... -
下载网络文件到SD卡上
2010-08-02 19:07 3369下面一个一个类的来进行介绍: 1.DownLoadProgre ... -
下载网路图片到SD卡上新建文件夹当中
2010-07-27 22:52 31901.DownloadImages.java文件 packa ... -
sax方式解析xml文件(asset文件和网络文件)
2010-07-11 17:16 1965现在写了些博客后,变懒 ... -
xml中DOM对象的学习
2010-07-03 13:57 1282DOM的基本对象有5个:Doc ... -
DOM方式解析xml文件3(assets中xml文件)
2010-07-03 13:44 2564这个例子是进一步熟悉DOM解析xml文件的方法,附带基础的文档 ... -
DOM方式解析xml文件2(解析本地xml)
2010-07-01 20:42 1585这个与1的方法唯一不同的就是传递InputSource的参数: ... -
下载显示网路图片的例子
2010-07-01 10:46 1484一个很简单的例子,直接上代码: 1. ShowUrlImage ...
相关推荐
XML(eXtensible Markup...总之,DOM和JDOM是Java中解析XML的重要工具,它们提供了灵活的方式来读取、修改和写入XML文件。根据项目需求和性能考虑,选择合适的方法并熟练掌握其用法,能极大地提升XML处理的效率和质量。
本篇文章将深入探讨如何使用DOM(文档对象模型)解析XML文件,并将其内容显示在应用程序的用户界面上。 首先,理解DOM解析的基本概念至关重要。DOM是一种标准,允许程序以树形结构访问和操作XML文档的全部内容。它...
然而,在某些情况下,如离线环境或者网络连接不稳定的情况下,这种行为会导致DOM4J无法正确地解析XML文件,从而引发异常。 #### DTD的作用与工作原理 DTD是一种用于定义XML文档结构的语言。它定义了文档中元素的...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于网络数据交换、配置文件存储等场景。本文将深入探讨DOM、DOM4J和SAX三种常用的XML解析方法,并结合具体的实例进行详细讲解。 首先,DOM...
解析XML文件有多种方法,常见的有DOM(文档对象模型),DOM4J以及SAX(简单API文档解析)。DOM方法将整个XML文档加载进内存,形成一个树状结构,然后通过遍历这个结构进行操作,这种方式适合文档较小且需要频繁操作...
在本例中,我们将深入探讨如何使用DOM4J来解析XML文件。 首先,我们需要理解XML(Extensible Markup Language)的基本概念。XML是一种标记语言,用于存储和传输数据,具有自描述性和结构化的特点,广泛应用于网络...
常见的解析方式有DOM(Document Object Model)和SAX(Simple API for XML)两种。DOM解析器会将整个XML文档加载到内存中,形成一个树形结构,适合小规模数据处理;SAX解析器则是事件驱动的,逐行读取XML,适合处理...
在处理XML文件时,有两种主要的解析方式:DOM(Document Object Model)和SAX(Simple API for XML)。 **DOM解析器** 是一种将整个XML文档加载到内存中形成一棵树状结构的方法。每个节点代表XML文档的一部分,可以...
本资料包主要涵盖了两种常见的XML解析方式:DOM(Document Object Model)和Pull解析器。以下是这两种解析方法的详细说明。 **DOM解析** DOM解析是一种将整个XML文档加载到内存中,形成一个树形结构的方法。通过DOM...
在IT领域,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,广泛应用在各种软件和网络服务中。Delphi是一款强大的Object Pascal编程环境,它提供了丰富的库和工具来处理XML数据,包括解析...
3. **XML文件解析**:在MFC中,使用DOM解析XML文件的过程包括创建`IXMLDOMDocument`对象,加载XML文件,然后遍历节点树以获取所需信息。例如,`LoadXML`方法可以用来加载XML字符串,而`load`方法则可以加载XML文件。...
在IT行业中,XML(eXtensible Markup Language)是一种重要的数据交换格式,广泛应用于网络通信、数据存储和配置文件等领域。本篇文章将深入探讨如何使用Pull解析器来读取XML文件,以及如何生成XML文件。Pull解析器...
1. DOM(Document Object Model)解析:DOM将整个XML文档加载到内存中形成一个树形结构,允许开发者通过节点操作访问和修改XML数据。例如,使用Java的DOM解析器`javax.xml.parsers.DocumentBuilderFactory`可以创建`...
DOM解析的优点是可以方便地进行随机访问,但缺点是如果XML文件较大,会占用大量内存,效率较低。在Java中,我们可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`等类来实现DOM解析。...
本篇文章将重点讲解XML在Java中的解析方式,特别是DOM和SAX解析。 1. DOM解析: DOM(Document Object Model)是W3C推荐的一种处理XML文档的标准模型。它将整个XML文档加载到内存中,构建一个树形结构,允许开发者...
总结,PowerBuilder 9为处理XML文件提供了强大的支持,通过XMLDocument对象和DOM解析器,我们可以轻松地读取、写入和操作XML数据。这些功能使PB9成为开发涉及XML的应用的理想工具,帮助开发者高效地完成数据交换和...
相较于DOM(Document Object Model)解析器,SAX解析器占用更少的内存和处理时间,因为它不会一次性加载整个XML文档到内存,而是采用事件驱动的方式逐个处理XML元素。在本项目中,"saxloadxml"应该是实现了一个SAX...
"full方式解析xml"通常指的是SAX(Simple API for XML)解析器的事件驱动模型,它是一种轻量级、高效的XML解析方法。在Android系统中,由于资源限制,这种解析方式尤其受到青睐。本文将详细介绍SAX解析XML的方式及其...
1. **DOM解析方式**:DOM4J通过DOM接口来解析XML,将整个XML文档加载到内存中形成一个树形结构,称为DOM树。这样做的优点是可以方便地通过路径导航访问任何元素,缺点是如果XML文件过大,可能会消耗大量内存。 2. *...
DOM(Document Object Model)是另一种常见的XML解析方式,它将整个XML文档加载到一个树形结构中,称为DOM树。每个XML元素、属性、文本节点都在树中对应一个节点。通过DOM解析,可以方便地访问和修改文档的任何部分...