- 浏览: 1204408 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (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 2250重写WebChromeClient一个方法进行进度条显示: ... -
基于UDP协议的数据交互例子
2011-12-18 11:06 1642直接贴上代码: 客户端: package com.exam ... -
一种更灵活的数据传输方式:HTTP(2)
2011-12-16 11:18 2908HTTP是大多数应用程序中常用的与服务端交互的通讯方式 ... -
一种更灵活的数据传输方式:HTTP(1)
2011-12-16 10:52 1883使用WebService虽然 ... -
重用WebView的cache图片文件
2011-09-15 15:06 1950如何从WebView使用的cache文件夹中重复使用一些图片资 ... -
开,关闭GPRS的简单Demo
2011-06-09 10:54 2689Android应用中开,关闭GPRS的简单Demo,可能在有的 ... -
Intent打开各种类型文件
2011-04-10 18:22 4377//android获取一个用于打开PPT文件的intent ... -
图片Url保存为位图并进行缩放操作
2010-10-12 15:33 13091.通过传入图片url获取位图方法: public Bit ... -
判断手机有无网络
2010-09-15 16:18 2791ConnectivityManager cwjManage ... -
GoogleMap(通过输入地址,查询显示在google 地图上)
2010-08-15 10:18 4599主Activity: package net.blogja ... -
Android手机使用中国电信天翼上网设置
2010-08-07 16:01 3788众所周知Android手机的上网功能需要用到APN(网络接入点 ... -
GPS取得卫星个数
2010-08-07 15:09 2891LocationManager manager = (Lo ... -
连接服务器超时的Demo
2010-08-05 11:49 2377下面这个例子是连接网络超时的例子: package cn. ... -
下载网络文件到SD卡上
2010-08-02 19:07 3313下面一个一个类的来进行介绍: 1.DownLoadProgre ... -
下载网路图片到SD卡上新建文件夹当中
2010-07-27 22:52 31481.DownloadImages.java文件 packa ... -
sax方式解析xml文件(asset文件和网络文件)
2010-07-11 17:16 1928现在写了些博客后,变懒 ... -
xml中DOM对象的学习
2010-07-03 13:57 1231DOM的基本对象有5个:Doc ... -
DOM方式解析xml文件3(assets中xml文件)
2010-07-03 13:44 2521这个例子是进一步熟悉DOM解析xml文件的方法,附带基础的文档 ... -
DOM方式解析xml文件2(解析本地xml)
2010-07-01 20:42 1545这个与1的方法唯一不同的就是传递InputSource的参数: ... -
下载显示网路图片的例子
2010-07-01 10:46 1447一个很简单的例子,直接上代码: 1. ShowUrlImage ...
相关推荐
三种方式解析XML 提供创建XML方法 本地三种方式解析 网络三种方式解析 一共7个 需要的下 带文件编码识别 相当强大哦
XML的DOM解析方式 解析环球新闻的rss格式新闻
在JAVA中有两种常见的XML解析方式,DOM和SAX,DOM在解析的时候会将所有的数据一次性载入内存中进行解析,在数据量比较大的情况下,效率非常低.尤其在手机这种对内存和性能要求比较苛刻的设备里面这种方法并不可取. ...
XML(Extensible Markup Language)可拓展标记语言,它与HTML一样,都是SGML...在Android下有三种方式解析XML,分别为SAX、DOM、PULL;它们有各自的特点,在网络编程中会经常使用,根据实际情况选择哪一种解析方式。
使用dom4j解析含有这样dtd的xml文件时,它会从网络找到这个文件对xml文件进行校验。但是如果电脑断开网络的话就会出现错误说找不到dtd文件并解析失败。所以请使用以下方法...
里面包含三种android解析XML方式:使用DOM解析本地XML,使用SAX解析网络XML文件,使用PULL解析网络XML。文档中附解析XML文件,解析源码,解析XML应注意问题。其中SAX,PULL是万能助手类(只需要有对应的XML源,给XML...
dom4j 被广泛的应用到xml解析上。这里给出部分网络资源
android从网上下载各类文件,解压缩文件,从网络上或者SD卡读取xml并用dom4j解析,把网络上的xml存入SD卡。 给新手看的。注释已经很详细了。使用的时候注意把下载路径,SD卡存储路径,SD卡上的文件读取路径等自己...
RapidXml 试图成为最快的 XML DOM 解析工具包,同时保证解析结果的可用性、可移植性以及与 W3C 标准的兼容性。RapidXml 使用 C++ 编写,因此在操作同一数据时,其解析速度接近于 strlen() 函数。 整个解析工具包包含...
根据网络视频自己写的的代码,包括DOM、SAX、JDOM、DOM4J四种解析+生成XML文档代码,思维导图
DOM:一次性将整个XML数据加载进内存进行解析,比较适合解析小文件SAX:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件 2、IOS中XML解析方案有很多种: 2-1、第三方框架: libxml2:纯C语言...
本文讲解了一个使用XML技术上传文件的例子,使用该方法没有传统方法中的种种限制。 这个例子讲述了如何使用MSXML3.0和ADO Stream对象来实现这种新的上传方法。该方法只能使用于内部网络,因为它需要IE5的安全级别...
JDOM 和 DOM 在性能测试时表现不佳,在测试 10M 文档时内存溢出。在小文档情况下还值得考虑使用 DOM 和 JDOM。虽然 JDOM 的开发者已经说明他们期望... SAX表现较好,这要依赖于它特定的解析方式。无疑,DOM4J是最好的。
一个XML 解析器,功能一般但是非常实用
XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。...
简单地说,TinyXML解析一个XML文档并由此生成一个可读可修改可保存的文档对象模型(DOM)。 XML的意思是“可扩展标记语言“(eXtensible Markup Language)。它允许你创建你自己的文档标记。在为浏览器标记文档...
第1章 XML简介 1.1 标记语言 1.2 XML的起源和目的 1.3 Web体系结构:过去与未来 1.3.1 传统Web体系结构 1.3.2 XML下的Web体系结构 1.4 XML基本特征 1.5 词汇表 1.5.1 科学词汇表 1.5.2 商业词汇表 1.5.3 ...
这对于处理大型xml来 说是个巨大的优点,事实上,程序甚至不必解析整个文档,它可以在某个条件得到满足 时停止解析,这种读取方式比xstream与dom都要快上许多。所以在读取大型xml时可以把 xstream与saxparser结合...
它将教您如何使用XML的各种应用程序编程接口(API)、工具和技巧来构建实际的应用程序,为管理从配置文件到网络站点在内的所有信息提供一条全新的途径。 本书的前两章回顾有关XML的基础知识,包括XPath、XSL、DTD...
第1章 XML简介 1.1 标记语言 1.2 XML的起源和目的 1.3 Web体系结构:过去与未来 1.3.1 传统Web体系结构 1.3.2 XML下的Web体系结构 1.4 XML基本特征 1.5 词汇表 1.5.1 科学词汇表 1.5.2 商业词汇表 1.5.3 ...