• android之DOM生成与解析


     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());
      }

  • 相关阅读:
    webApi2 结合uploadify 上传报错解决办法
    对特殊字符进行转移
    数据库事务MTDC出错解决办法
    查询数据所有的外键关系
    查询SQL阻塞语句
    Django介绍
    Docker简介
    Docker CE部署
    jQuery快速入门
    系统批量运维管理器paramiko详解
  • 原文地址:https://www.cnblogs.com/xingkai/p/5109601.html
Copyright © 2020-2023  润新知