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. hadoop 入门实例【转】

    原文链接:http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html 1.数据去重  "数据去重"主要是为了掌握 ...

  2. scp lost connection

    将本机的文件copy到远程时, scp -r /home/Projects/test.rpm root@172.1.1.1:/root; 我们得到了一个错误:lost connection lost ...

  3. Python策略模式实现源码分享

    1.让一个对象的某个方法可以随时改变,而不用更改对象的代码 2.对于动态类型的Python语言,不需要定义接口 3.基本的实现方法:用类作为参数传递 例如: 12_eg3.py class Movea ...

  4. sql raiseerror

    raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql server 2005的帮助 ]   其语法如下: RAISERROR ( { msg_id | msg ...

  5. js代码如何测试代码运行时间

    function add(){ //这里放要执行的代码 } //开始测试并输出 function test() { var start=new Date().getTime(); add(); var ...

  6. 制作Aspose CHM文档的过程记录

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  7. 关于64位WIN7下正确建立JAVA开发环境(转

    1.下载并安装JDK(地址:http://www.oracle.com/technetwor ... ownload-400750.html     先在“Accept License Agreeme ...

  8. UITabBarController加载之后不显示sub view controller

    原代码: fileprivate func createSubiewControllers() { let newsVC = NewsViewController() let newsItem = U ...

  9. App crash 报错 'NSUnknownKeyException'

    报错: *** Terminating app due to uncaught exception , reason: '[<NSObject 0x6e36ae0> setValue:fo ...

  10. easyUI dialog 弹窗 居中显示

    默认情况下应该是在屏幕居中显示的.但是有的时候没有居中只要重新纠正下就可以了 $('#add_dialog').dialog('open'); //打开添加对话框 $('#add_dialog').w ...