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. 别人要访问我的电脑上部署的tomcat,必须关闭防火墙吗?

    局域网内要访问服务器上部署的tomcat,必须关闭防火墙吗? 不一定. 如果是需要使用 IP:端口号(ip:port)来访问,可以做以下设置(这里仅是说的tomcat访问). 首先在服务器的控制面板中 ...

  2. Css3_必备10个东西

    1.边框圆角(Border Radiuas) 这个是我们在平常很常用的吧,以前我在用div圆角的时候,特别特别的痛苦,不管是用CSS来画圆角,还是用图片来画圆角都不那么容易,但是现在好了,在CSS3中 ...

  3. listview某一项不可点击

    listview 整个都不可操作 listview.setEnable(false); listview 某一项不可点击 重写 isEnable()方法,在方法内部判断position,不可点击的项 ...

  4. python操作mongodb之八地理索引空间数据

    from pymongo import MongoClient, GEO2D #使用geo_example库 db = MongoClient('192.168.30.252',27017).geo_ ...

  5. matlab cross 3*1 向量叉乘

    一定是1*3  或者3*1 的向量才可以叉乘 A=[1 2 3] B=[4 5 6] cross(A,B) ans=[-3 6 -3] 解决机器人微分运动量之间的等价关系

  6. Perl 语法 - 基础

    perl语言的核心是正则表达式,在文本处理上非常有优势,与python类似,但语法不同,perl的语法很灵活,用多了才会觉得好用. 常用知识点总结: perl语法类似于C语言(perl源于Unix), ...

  7. php面向对象Object

    1.创建类 class 类名{ private 私有变量 只能本类的内部使用 protected 受保护的变量 本类和子类的内部 public 公开的变量 都可以使用 一般属性都设为私有 一般函数都是 ...

  8. Android利用V4包中的SwipeRefreshLayout实现上拉加载

    基本原理 上拉加载或者说滚动到底部时自动加载,都是通过判断是否滚动到了ListView或者其他View的底部,然后触发相应的操作,这里我们以 ListView来说明.因此我们需要在监听ListView ...

  9. JAVA中线程同步的方法(7种)汇总

    同步的方法: 一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法.在调用该方法前,需要获得内置锁,否则就 ...

  10. hdu----(4521)小明系列问题——小明序列

    小明系列问题——小明序列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...