DOM解析不适合于进行大数据文件的操作,DOM解析适合于对文件进行修改和随机存取的操作。 

 DOM生成

  //判断一下是否存在sdcard
  if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

    //不存在
    return;
  }

  File file = new File(Environment.getExternalStorageDirectory().toString()+File.separator+"xkdata"+File.separator+"member.xml");

  if(!file.getParentFile().exists()) {

    file.getParentFile().mkdirs();
  }

  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder builder = null;
  try {

    builder = dbf.newDocumentBuilder();
  } catch (ParserConfigurationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }

  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(DomActivity.this.name.getText().toString()));
  email.appendChild(doc.createTextNode(DomActivity.this.email.getText().toString()));
  linkman.appendChild(name);
  linkman.appendChild(email);
  addresslist.appendChild(linkman);
  doc.appendChild(addresslist);

  //输出文档到文件中
  TransformerFactory tf = TransformerFactory.newInstance();
  Transformer t = null;
  try {
    t = tf.newTransformer();
  } catch (TransformerConfigurationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }
  t.setOutputProperty(OutputKeys.ENCODING, "GBK");
  DOMSource source = new DOMSource(doc);
  StreamResult result = new StreamResult(file);

  try {
    t.transform(source, result);
  } catch (TransformerException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }

  

  DOM解析 

  //判断一下是否存在sdcard
  if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

    //不存在
    return;
  }

  File file = new File(Environment.getExternalStorageDirectory().toString()+File.separator+"xkdata"+File.separator+"member.xml");
  if(!file.exists()) {

    return;
  }

  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder builder = null;
  try {

    builder = dbf.newDocumentBuilder();
  } catch (ParserConfigurationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }

  Document doc = null;
  try {
    doc = builder.parse(file);
  } catch (SAXException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
  } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
  }

  NodeList nl = doc.getElementsByTagName("linkman");
  for(int i=0;i<nl.getLength();i++){

    Element e = (Element)nl.item(i);
    DomReadActivity.this.name.setText(e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
    DomReadActivity.this.email.setText(e.getElementsByTagName("email").item(0).getFirstChild().getNodeValue());
  }

android之DOM生成与解析的更多相关文章

  1. Android使用DOM生成和输出XML格式数据

    Android使用DOM生成和输出XML格式数据 本文主要简单解说怎样使用DOM生成和输出XML数据. 1. 生成和输出XML数据 代码及凝视例如以下: try { DocumentBuilderFa ...

  2. Android 通过Dom, Sax, Pull解析网络xml数据

    这篇文章不是完全原创,XML解析的部分参考了 liuhe688 的文章.文章地址:http://blog.csdn.net/liuhe688/article/details/6415593 这是一个几 ...

  3. Android first---xml文件生成与解析

    一.使用append进行xml生成 Message类属性:private String body;        private String date;       private String a ...

  4. Android 利用Gson生成或解析json

    目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json.下载Gson:https://code.google.com/p/google-gson/ 下载的放在lib并导入,若 ...

  5. android xml的生成与解析

    Main java package com.itheima.xml; import android.app.Activity; import android.content.Context; impo ...

  6. Android系列--DOM、SAX、Pull解析XML

    您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...

  7. DOM生成XML文档与解析XML文档(JUNIT测试)

    package cn.liuning.test; import java.io.File; import java.io.IOException; import javax.xml.parsers.D ...

  8. DOM生成&解析

    开篇注意,由于解析有可能有大文件非常耗时,建议另开一个线程解析也可以不开具体视情况而定     DOM生成 1.拿到Document的工厂实例化 DocumentBuilderFactory df = ...

  9. Android Json生成及解析实例

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

随机推荐

  1. 转:C++中Static作用和使用方法

    转自:http://blog.csdn.net/artechtor/article/details/2312766 1.什么是static?       static 是C++中很常用的修饰符,它被用 ...

  2. SDL1.2到2.0的迁移指南(转)

    里面有些单词不好翻译所以放在开头,以备查验. BLock Image Transfer, a computer graphics operation in which two bitmap patte ...

  3. java源程序---可执行文件(.exe)----安装包

    众所周知,java源程序都可以导出为(executable jar file)可执行的.jar文件,但是该.jar文件需要在jre环境下才能执行. 那么如何能在没有装jre的电脑上运行呢?(那就要顺带 ...

  4. list转datatable c#

    private DataTable ToDataTable<T>(List<T> items) { var tb = new DataTable(typeof(T).Name) ...

  5. java 多线程1

    进程: 线程: 多线程: 假象:只是CPU在做快速的切换 多线程的好处: 1.解决了一个进程里面可以同时运行多个任务(执行路径) 2.提高资源利用率,而不是效率. 多线程的弊端: 1.降低了一个进程里 ...

  6. IE9以上 CSS文件因Mime类型不匹配而被忽略 其他浏览器及IE8以下显示正常

     什么是Mime类型? MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名 ...

  7. python 练习 1

    from math import sqrt from datetime import date def k1(): #某人是1999年9月29日生日 #问到2006年9月29日他活了多少天 a=dat ...

  8. robot API笔记4

    robot.htmldata包 包编写HTML格式的输出文件. 这个包被认为是稳定的但不是公共API的一部分. robot.htmldata.htmlfilewriter module classro ...

  9. C# Form内存回收

    namespace WebBrowserMemoryTest { public partial class Form1 : Form { private int _Pages; public Form ...

  10. [redis] windwos下安装和使用redis

    一篇很好的入门学习文章:Redis学习 Redis是一种nosql数据库,在开发中常用做缓存. 1.下载地址: 低版本下载地址:https://github.com/dmajkic/redis/dow ...