`
DanielHan
  • 浏览: 57111 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
074641d7-eb86-343f-a745-65a0f693edb5
设计模式
浏览量:7364
社区版块
存档分类
最新评论

存储方式二:文件(XML DOM解析)

 
阅读更多
1.写
package com.example.filedemo;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
			File file=new File(Environment.getExternalStorageDirectory()+File.separator+"files/addresslist.xml");
			if(!file.getParentFile().exists()){
				file.getParentFile().mkdirs();
			}
			try {
				DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
				DocumentBuilder builder=factory.newDocumentBuilder();
				Document doc=builder.newDocument();
				Element addresslist=doc.createElement("addresslist");
				Element linkman=doc.createElement("linkman");
				Element name=doc.createElement("name");
				Element email=doc.createElement("email");
				name.appendChild(doc.createTextNode("DanielHan"));
				email.appendChild(doc.createTextNode("123131@qq.com"));
				linkman.appendChild(name);
				linkman.appendChild(email);
				addresslist.appendChild(linkman);
				doc.appendChild(addresslist);
				
				TransformerFactory formerFac=TransformerFactory.newInstance();
				Transformer former=formerFac.newTransformer();
				DOMSource source= new DOMSource(doc);
				StreamResult result=new StreamResult(file);
				former.transform(source, result);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}else{
			Toast.makeText(this, "没有sdcard", Toast.LENGTH_LONG).show();
		}

		
	}
}





2.读
package com.example.filedemo;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
	private TextView name=null;
	private TextView email=null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		name=(TextView)findViewById(R.id.name);
		email=(TextView)findViewById(R.id.email);
		if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
			File file=new File(Environment.getExternalStorageDirectory()+File.separator+"files/addresslist.xml");
			if(!file.exists()){//文件不存在
				return;
			}
			try {
				DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
				DocumentBuilder builder=factory.newDocumentBuilder();
				Document doc=builder.parse(file);
				NodeList nodes=doc.getElementsByTagName("linkman");
				Element linkname=(Element)nodes.item(0);
				name.setText(linkname.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
				email.setText(linkname.getElementsByTagName("email").item(0).getFirstChild().getNodeValue());
			} catch (Exception e) {
				e.printStackTrace();
			}
		}else{
			Toast.makeText(this, "没有sdcard", Toast.LENGTH_LONG).show();
		}
	}
}




  • 大小: 6.9 KB
  • 大小: 5.7 KB
分享到:
评论

相关推荐

    android Dom解析xml文件

    本篇文章将深入探讨Android中的DOM解析XML文件,包括其基本原理、实现步骤和一些实用技巧。 ### 1. DOM解析的基本概念 DOM解析是一种将XML文件转换为内存中对象模型的方法。它将XML文档视为一棵树,其中每个元素、...

    Android Dom解析XML

    尽管对于大型XML文件,DOM解析可能因消耗大量内存而效率低下,但在处理小型XML文件时,DOM方法具有简洁和方便的优点。 首先,让我们了解DOM解析的基本原理。DOM解析器读取XML文件并构建一个内存中的节点树,其中每...

    j2ee10:xml01:dom解析和sax解析

    首先,DOM解析是一种将整个XML文档加载到内存中的解析方式,它构建了一个树形结构,允许开发者通过节点层级遍历和操作XML文档。DOM解析器读取XML文件后,会创建一个完整的DOM树,每个元素、属性、文本等都有对应的...

    dom4j解析xml详解

    - **配置文件解析**: 许多应用使用XML作为配置文件的格式,DOM4J可以方便地读取和更新这些配置信息。 - **Web服务**: 在SOAP等协议中,XML是常用的数据传输格式,DOM4J能够帮助构建和解析这些XML消息。 - **文档生成...

    使用dom4j 和本地dom 解析xml 文件

    DOM解析方式是将整个XML文件加载到内存中,形成一棵DOM树,每个节点代表XML文档的一部分。这种方式适合小型XML文件,因为大型文件会消耗大量内存。在Java中,DOM解析主要通过`javax.xml.parsers....

    xml解析文件的两种方式

    DOM解析方式是将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这个树的每个节点代表XML文档的一个部分,如元素、属性、文本等。DOM解析器允许开发者通过遍历这棵树来访问和修改XML文档的任何部分。 优点...

    DOM解析XML文件例子

    但需要注意,DOM解析在处理大型XML文件时可能会消耗大量内存,因此在资源有限的环境下,可能需要考虑使用更轻量级的解析方式,如SAX解析。 总结来说,DOM解析XML文件是一种常见的数据处理技术,通过构建内存中的DOM...

    xmldom4j解析

    DOM解析会将整个XML文档加载到内存中形成一棵树形结构,方便访问任意节点,但内存消耗大;SAX解析则采用事件驱动,逐行读取XML,适合处理大型文档,但不支持随机访问。 三、DOM4J解析XML 1. 创建Document对象:使用...

    用dom解析xml文件

    DOM解析方式适用于小型XML文件,因为整个文件会被加载到内存中。对于大型文件,考虑使用SAX(Simple API for XML)或StAX(Streaming API for XML)等拉式解析器,它们按需读取数据,节省内存。同时,DOM解析器也...

    XML解析之DOM

    在"XML解析之DOM"这一主题中,我们将深入探讨DOM解析器如何工作,以及如何通过DOM API获取XML文件中的信息。DOM解析器将整个XML文档加载到内存中,形成一个节点树,每个元素、属性、文本等内容都对应一个节点。这种...

    DOM_XML.rar_DOM_dom xml_dom xml java_dom解析xml_java解析xml

    标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...

    Dom方式解析XML

    DOM解析器会一次性加载整个XML文档到内存,因此适用于小型或中型XML文件,对于大型文件可能会消耗大量内存。 1. **DOM解析XML的基本步骤** - **导入库**:首先,在Android项目中,我们需要导入处理XML的Java API,...

    xmldom

    在这个chm格式的文件“XMLDOM对象方法手册”中,很显然包含了关于XMLDOM核心对象——XMLDocument的所有方法和属性的详尽指南。 XMLDocument对象是XMLDOM的核心,它是整个XML文档的根节点,代表了一个完整的XML文件...

    XML文件DOM方式解析

    DOM解析方式的优点在于它可以提供随机访问,允许开发者随时定位到文档的任何部分,但其缺点也很明显,那就是需要一次性加载整个XML文件到内存,这可能导致资源消耗过大,尤其当处理大型XML文件时。 总结来说,XML...

    DOM解析XML 创建XML

    下面我们将深入探讨DOM解析XML以及如何创建XML。 DOM解析XML的过程分为以下几个步骤: 1. **加载XML文档**:首先,我们需要通过DOM解析器加载XML文档。在JavaScript中,可以使用`DOMParser`对象的`parseFromString...

    xml解析 dom方式 例子和讲解

    在压缩包中的`Dom_xml.java`文件很可能包含了以上步骤的实现,展示了如何用DOM解析XML。而`jar`文件可能包含了一些额外的库或工具,如SAX解析器等,它们可能被`Dom_xml.java`引用。在实际开发中,我们需要确保正确地...

    java平台中使用DOM解析xml文件

    然而,DOM解析器的优势在于其灵活性,它允许直接访问和修改XML文档的任意部分,而不需要了解文件的整个结构。 至于提供的压缩包文件"10月22课例"(JDOM),JDOM是Java的一个XML处理库,它提供了一种与DOM类似的API,...

    Xml文件dom解析

    在实际应用中,DOM解析XML文件的优点在于其灵活性,允许任意位置的修改,但缺点是消耗内存较大,不适用于非常大的XML文件。对于大型XML文件,可能需要考虑使用SAX(Simple API for XML)或StAX(Streaming API for ...

    XML解析实践之DOM解析和SAX解析.rar

    在实践中,DOM解析通常用于XML文件较小或者需要频繁修改XML结构的场合,因为它提供了完整的文档视图,操作起来更直观。而SAX解析常用于需要高效读取大量XML数据且只关心特定部分的情况,例如日志分析、数据流处理等...

    Android使用DOM方式解析XML

    在Android开发中,XML(可扩展标记语言)是一种常见的数据格式,用于存储和传输结构化数据。本篇文章将深入探讨如何使用DOM(文档对象模型)解析XML...不过,对于小型或中等大小的XML文件,DOM解析是一个理想的选择。

Global site tag (gtag.js) - Google Analytics