乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Android使用Pull解析器解析XML文件

       杰出天下 2012-09-21

      Pull簡介

         1.常見的XML解析方式有三種,DOM、SAX、Pull,Android系統(tǒng)中推薦使用Pull

         2.Pull解析器是一個開源的Java項目,Android系統(tǒng)內(nèi)部解析XML文件均為此種方式,也可用于JavaEE項目

         3.Android SDK中已經(jīng)集成了Pull解析器,無需添加任何jar文件

         4.Pull解析器運行方式與SAX類似,提供各種事件的判斷

         5.官方網(wǎng)站:http:///

      使用Pull解析器解析XML文件

        1.  Xml.newPullParser() 獲得解析器

        2  parser.setInput(in, "UTF-8") 設(shè)置輸入流以及編碼

        3. parser.next() 獲取下一個解析事件,得到一個事件代碼

        4. XmlPullParser中定義了常量來標(biāo)識各種解析事件

            START_DOCUMENT、END_DOCUMENT 、START_TAG 、END_TAG 、TEXT

      示例:

      view plain
      /** 
       * 接收一個XML文件輸入流, 從輸入流中讀所有User節(jié)點, 將數(shù)據(jù)封裝成對象裝入List返回 
       * @param in XML文件的輸入流 
       * @return User對象的集合 
       * @throws Exception  
       */ 
      public List<User> findAll(InputStream in) throws Exception { 
          // 獲取Pull解析器 
          XmlPullParser parser = Xml.newPullParser(); 
          // 解析器加載輸入流 
          parser.setInput(in, "UTF-8"); 
       
          List<User> list = new ArrayList<User>(); 
          User user = null; 
          for (int event = parser.getEventType(); event != XmlPullParser.END_DOCUMENT; event = parser.next()) 
              switch (event) { 
                  case XmlPullParser.START_TAG: 
                      if ("user".equals(parser.getName())) { 
                          user = new User(); 
                          String id = parser.getAttributeValue(0); 
                          user.setId(new Integer(id)); 
                          list.add(user); 
                      } else if ("name".equals(parser.getName())) { 
                          String name = parser.nextText(); 
                          user.setName(name); 
                      } else if ("age".equals(parser.getName())) { 
                          String age = parser.nextText(); 
                          user.setAge(new Integer(age)); 
                      } 
              } 
       
          return list; 

      使用XmlSerializer寫出XML

          使用以下方法生成XML,和XML文檔順序類似

      startDocument

      startTag

      attribute

      text

      endTag

      endDocument

      view plain
      /** 
       * 使用XmlSerializer寫出XML 
       * @param users User集合 
       * @param out 輸出流 
       * @throws IOException 
       */ 
      public void saveAllByXmlSerializer(List<User> users, OutputStream out) throws IOException { 
          XmlSerializer serializer = Xml.newSerializer(); 
          serializer.setOutput(out, "UTF-8"); 
       
          serializer.startDocument("UTF-8", true); 
          serializer.startTag(null, "users"); 
       
          for (User user : users) { 
              serializer.startTag(null, "user"); 
              serializer.attribute(null, "id", user.getId().toString()); 
       
              serializer.startTag(null, "name"); 
              serializer.text(user.getName()); 
              serializer.endTag(null, "name"); 
       
              serializer.startTag(null, "age"); 
              serializer.text(user.getAge().toString()); 
              serializer.endTag(null, "age"); 
       
              serializer.endTag(null, "user"); 
          } 
       
          serializer.endTag(null, "users"); 
          serializer.endDocument(); 

      用StringBuilder寫出XML文件

      以下是自己拼接的而成的,如果里邊有特殊符號的話就不太好做

      view plain
      /** 
       * 將若干User用XML形式描述, 輸出到指定輸出流 
       * @param users User集合 
       * @param out 輸出流 
       * @throws IOException  
       */ 
      public void saveAll(List<User> users, OutputStream out) throws IOException { 
          StringBuilder sb = new StringBuilder(); 
          sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
          sb.append("<users>"); 
          for (User user : users) { 
              sb.append("<user id=\"" + user.getId() + "\">"); 
              sb.append("<name>" + user.getName() + "</name>"); 
              sb.append("<age>" + user.getAge() + "</age>"); 
              sb.append("</user>"); 
          } 
          sb.append("</users>"); 
          out.write(sb.toString().getBytes()); 
          out.close(); 

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多