zoukankan      html  css  js  c++  java
  • 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());
      }

  • 相关阅读:
    elasticsearch 插件 大全
    ElasticSearch 服务搭建
    限制玻尔兹曼机(Restricted Boltzmann Machine)RBM
    卷积神经网络
    [转]MATLAB cell数据类型
    [转]matlab语言中的assert断言函数
    [转]matlab中squeeze函数的用法,numel的用法
    Sparse autoencoder implementation 稀疏自编码器实现
    MATLAB中的randi函数
    可视化自编码器训练结果&稀疏自编码器符号一览表
  • 原文地址:https://www.cnblogs.com/xingkai/p/5109601.html
Copyright © 2011-2022 走看看