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

存储方式二:文件(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
分享到:
评论

相关推荐

    java中用dom解析xml的经典入门级文档

    java中用dom解析xml的经典入门级文档

    DOM方式解析XML.pdf

    XML格式文档对于程序开发具有很重要的作用,QT利用Dom方式解析XML可以很方便的对数据进行存储于传输

    JSP页面解析XML并且存入数据库

    该项目是在JSP接受POST请求传过来XML文件,DOM解析并且存入mysql数据库

    android下载文件,xml,解析,解压,存储等

    android从网上下载各类文件,解压缩文件,从网络上或者SD卡读取xml并用dom4j解析,把网络上的xml存入SD卡。 给新手看的。注释已经很详细了。使用的时候注意把下载路径,SD卡存储路径,SD卡上的文件读取路径等自己...

    开源xml解析库TingXml。

    TinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧玲珑,非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而...

    java版xml解析的文件的例子(dom版+ SaxParse版)

    java版xml解析的文件的例子(dom版+ SaxParse版),将xml文件中的数据存储到对象中,进行处理。

    oracle 解析xml

    oracle 解析 xml 简单直接 xmldom

    实现对学生信息在XML中信息的存取

    要求:定义一个XML文件,保存本班学生的学号,姓名,性别,出生日期等,如上次实验所示。使用C#编写WINFORM程序,实现对学生信息在XML中信息的存取。

    tinyxml XML解析器

    tinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧玲珑,非常适合存储简单数据,配置文件,对象序列化等

    如何用vc创建和读取xml文件

    XML DOM对象提供了一个标准的方法来操作存储在XML文档中的信息,DOM应用编程接口(API)用来作为应用程序和XML文档之间的桥梁。  DOM可以认为是一个标准的结构体系用来连接文档和应用程序(也可以是剧本语言)。MSXML...

    java解析xml及4种常用解析比较

    然而由于使用DOM解析器的时候需要处理整个XML文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML文件的时候。由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。 SAX解析器采用了基于事件的...

    tinyxml2:TinyXML2是一个简单,小型,高效的C ++ XML解析器,可以轻松集成到其他程序中

    为存储应用程序数据而创建的所有那些随机文件格式都可以全部替换为XML。 一个解析器,可处理所有内容。 有多种访问和与XML数据交互的方式。 TinyXML-2使用文档对象模型(Document Object Model,DOM),这意味着XML...

    android 使用Sax解析XML 源码实例

    使用SAX方式解析XML SAX 是读取和操作 XML 数据的更快速、更轻量的方 法。SAX 允许您在读取文档时处理它,从而不必等待整个文档被存储之后才采取操作。它不涉及 DOM 所必需的开销和概念跳跃。 SAX API是一个基于事件...

    基于XML解析技术的Visio图与应用程序间的数据交互

    为了更加灵活地抽取Visio图中的图元信息,可以将Visio图以XML的格式存储为.vdx文件。再运用目前已经相当成熟的XML解析技术一DOM模型。设计对较大XML文件的解析应用程序提取有效信息.以实现Visio图与应用程序间的...

    Android程序技术:个人学习助手项目习题详情显示.pptx

    DOM解析 逐行扫描XML文件,读取文件的同时即可进行解析处理,不必等到文件加载结束。缺点是无法进行增、删、改等操作。 SAX解析 一个开源的Java项目,既可以用于Android应用,也可以用于JavaEE程序。Android中已经...

    从初识XML到解析XML

    文章目录XML的简介XML文件的创建XML语法XML元素dtd约束Schema约束使用dom4j解析使用xpath解析 XML的简介 XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是...

    用Python解析XML的几种常见方法的介绍

    这篇文章主要介绍了用Python解析XML的几种常见方法,包括快速的使用ElementTree模块等方法的实例介绍,... python解析XML常见的有三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合

    xml入门教程/xml入门教程

    实体:存储了任意符合规则的xml文档单元片断。 1、内部通用实体 定义格式 <!ENTITY 实体名 “实体内容”> 引用格式 &实体名; 2、外部通用实体 定义格式 <!ENTITY 实体名 SYSTEM “外部实体的URI”> 引用...

    xmlbean轻轻松松读写XML的利器

     Java提供了SAX和DOM两种方式用于解析XML,但即便如此,要读写一个稍微复杂的XML,也不是一件容易的事.    二、XMLBean简介    Hibernate已经成为目前流行的面向Java环境的对象/关系数据库映射工具.    在...

    TinyXML解析xml文档

    TinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧玲珑,非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作,尤其适用于游戏开发,在Nebula2,CEGUI等开源项目中都有使用。

Global site tag (gtag.js) - Google Analytics