欢迎大家访问我的个人网站 萌萌的IT人,后续所有的文章都会在此发布
--------------------------------------------------------------------------------------------
简单介绍一下我在用DOM解析方法时遇到的问题:
获取节点的属性时,老是出错误,后面经过多方查找
终于解决,方法如下:
data[i] = nChild.getAttributes().getNamedItem("data").getNodeValue();
其中"data"为属性的名字.
源代码如下:
public class test extends Activity implements OnClickListener { File fl; private final String net = "http://www.google.com/ig/api?hl=zh-cn&weather="; private final String st = "beijing"; private String addr; private String str; ListView lv; ArrayAdapter<String> adapter; private EditText et; private TextView tv; private TextView tv1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bt = (Button) findViewById(R.id.bt); bt.setOnClickListener(this); 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; String[] data = null; //Node nRoot = root(addr,"weather").item(0); //将weather设置为根节点 Node nRoot = root(addr,"forecast_information").item(0); NodeList child = nRoot.getChildNodes(); //获得孩子结点 int childSize = child.getLength(); //获得子节点的个数 6 data = new String[childSize]; for (int i = 0; i < childSize; i++) { Node nChild = child.item(i); //第一个子节点,city if (nChild.hasAttributes()) { //获得子节点 //获得节点属性 data[i] = nChild.getAttributes().getNamedItem("data").getNodeValue(); } tv = (TextView) findViewById(R.id.tv); tv.setText("city : " + data[1]); tv1 = (TextView) findViewById(R.id.tv2); tv1.setText("date :" + data[4]); } } 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; } }
相关推荐
本篇文章将详细探讨Android中四种主要的XML解析方法:SAXParser、Document、XMLResource和VTDGen。 1. SAXParser(Simple API for XML) SAXParser是基于事件驱动的解析器,适用于处理大型XML文档。它不会一次性...
在Android系统中,XML Pull解析是一种轻量级且高效的解析XML文档的方法,它允许应用程序按需读取XML文档的节点,而无需加载整个文档到内存中。以下是关于Android XML Pull解析的详细知识讲解。 1. **XML Pull解析器...
在Android应用中,我们通常使用两种方式来解析XML:DOM(Document Object Model)解析器和SAX(Simple API for XML)解析器。 1. DOM解析: DOM解析器将整个XML文件加载到内存中,形成一个树形结构,可以方便地遍历...
本主题将详细讲解如何在Android环境中利用Java进行XML解析,并生成JDOM库的jar文件。 XML解析在Android中的重要性不言而喻,因为XML常被用来描述应用程序的配置、布局,甚至是网络通信的数据交换格式。Java提供了...
Android XML 多种解析生成 Android 平台中,XML 文件解析和生成是非常重要的一部分。XML 文件可以存储和交换结构化数据,广泛应用于 Android 应用程序中。本文将介绍 Android 中使用多种解析和生成 XML 文件的方法...
XML解析是将XML文档转换为Java对象的过程,这对于Android应用程序的资源配置、布局定义以及数据交换至关重要。这篇博文将深入探讨Android中的XML解析机制,包括DOM、SAX和Pull解析器三种主要方法。 首先,我们来看...
本例使用多种方式获取本地XML文件,还有通过url获取XML文件,使用Android内置的PULL解析器对XML文件进行解析,例子是解析我国各个省市。 《Android解析XML文件》博文路径:...
Android支持多种XML解析技术,包括DOM、SAX和Pull解析。每种方法都有其特定的优势和应用场景。 #### DOM解析XML DOM(Document Object Model)解析是一种将整个XML文档加载到内存中,并构建出一棵树状结构(称为DOM...
本文将深入探讨在Android中如何解析XML数据,包括DOM、SAX和Pull解析器三种方法。 首先,DOM(Document Object Model)解析器将整个XML文档加载到内存中,形成一个树形结构,然后可以遍历这个结构来访问和修改XML...
Android提供了两种主要的XML解析方式:DOM(Document Object Model)和Pull解析器。下面我们将详细探讨这两种解析方法及其在Android下的实现原理。 **DOM解析** DOM解析器将整个XML文档加载到内存中,形成一个树形...
- 使用异步任务处理XML解析,避免阻塞主线程。 总结,Android的Pull解析XML文件是一种高效、节省资源的解析方式,适用于网络通信中的数据交换。通过创建Pull解析器实例,监听XML事件,以及适当优化,开发者可以...
二、Android中的XML解析实例 1. DOM解析实例: ```java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = ...
首先,让我们了解XML解析的基本概念,然后探讨在Android中实现这一功能的关键技术和步骤。 XML是一种自描述性的标记语言,它允许我们定义自己的标签来表示数据。在Android中,有两种主要的XML解析方式:DOM...
本篇将深入探讨Android中的XML解析,包括DOM解析、SAX解析和Pull解析,以及如何生成XML文件。 1. DOM解析: DOM(Document Object Model)是一种将XML文档转化为树形结构的方法,允许开发者通过节点遍历和操作XML...
SAX是一种事件驱动的XML解析器,它不会像DOM解析器那样将整个XML文档加载到内存中,而是逐行读取,遇到每个元素或属性时触发相应的事件回调。这种方式节省了内存,特别适合处理大型XML文件。 1. **SAX解析的基本...
本篇将详细探讨Android中的XML解析,特别是PULL解析方式,并讲解如何进行XML的写入操作。 ### 1. Android XML解析概述 XML解析器分为两种主要类型:DOM(Document Object Model)和PULL(Pull Parser)。DOM解析器...
本文将深入探讨如何使用DOM(Document Object Model)解析XML在Android应用中的实践。DOM解析方式允许开发者一次性加载整个XML文档到内存中,形成一个树形结构,便于遍历和操作。尽管对于大型XML文件,DOM解析可能因...
在Android开发中,XML文件广泛用于存储数据、配置文件以及应用...以上是Android环境中XML解析与生成的基础知识,实际应用中可能需要根据需求进行扩展和优化。XMLdemo项目应包含了这些方法的完整实现,可供学习和参考。
Android系统提供了三种主要的XML解析方式:DOM(Document Object Model)、PULL(Pull Parser)和SAX(Simple API for XML)。每种方法都有其独特的特性和应用场景,下面将详细介绍这三种XML解析方式。 1. DOM解析...