2012-02-22 65 views
0

我一直在尋找一個簡單的例子來讀/寫/編輯android的XML。該文件可以保存在應用程序文件結構的res/raw文件夾或資產/其他文件夾中。但是沒有簡單的代碼示例教程是適當的。

一些教程討論不同的XML解析器,如SAX,DOM等,但最好是使用特定的API /解析器來獲得所有3個示例。與僅用於讀取xml的SAX不同。在Android上使用DOM來讀取,寫入和編輯磁盤上的文件

http://www.mkyong.com/java/how-to-modify-xml-file-in-java-dom-parser/ 這是一個很好的DOM教程,但它不適用於android。我有問題決定在哪裏存儲的XML文件!爲Android創建InputStream & StreamResult或其他對象。

所以,請指出一些簡單的例子:1)讀取2)寫入3)使用SINGLE api/parser/framework(比如DOM或其​​他)編輯。其中還包括哪裏&如何存儲該文件1)內部存儲2)外部(SD)

希望這也有助於其他新手。

回答

1

嗯,如果您仍然可以使用幫助,我很樂意幫助您編寫問題的XML部分。然而,我需要編輯XML的主題。如果我想使用字符串解析,我對如何編輯XML有一個想法,但我不知道如何去更新原始XML文件...... [對不起,如果我在那裏丟失了你。]但是我要去編輯一個適合我的代碼,這樣你就可以偷看了。 :)
易佳(對於新手,至於嘛)
閱讀在XML在Android中:-)

演示XML

<UltraSpecialEvents> 
    <UltraSpecialEvent Name= "USE1"> 
     <UltraSpecialInfo Name="USI1" Detail="Blah" TimeStamp="hh:mm:ss" /> 
     <UltraSpecialInfo Name="USI2" Detail="Blah Blahs" TimeStamp="hh:mm:ss" /> 
     <UltraSpecialInfo Name="USI3" Detail="And More Blahs" TimeStamp="hh:mm:ss" /> 
    </UltraSpecialEvent> 
    <UltraSpecialEvent Name= "UnusedGarbageStuff't"> 
     <UltraSpecialInfo Name="USI1" Detail="Blah" TimeStamp="hh:mm:ss" /> 
     <UltraSpecialInfo Name="USI2" Detail="Blah Blahs" TimeStamp="hh:mm:ss" /> 
     <UltraSpecialInfo Name="USI3" Detail="And More Blahs" TimeStamp="hh:mm:ss" /> 
    </UltraSpecialEvent> 
</UltraSpecialEvents> 

讀取XML

public ArrayList<ArrayList<String>> get() { 
      ArrayList<ArrayList<String>> classes = new ArrayList<ArrayList<String>>(); 
      try { 
       boolean inTargetedTag = false; 
       XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); 
       parser.setInput(inputStream, null); 
       int eventType = parser.getEventType(); 
       while (eventType != XmlPullParser.END_DOCUMENT) { 
        switch (eventType) { 
        case XmlPullParser.START_TAG: 
         String tagName = parser.getName(); 
         if (tagName.equalsIgnoreCase("UltraSpecialEvent")) { 
          if (parser.getAttributeValue(null, "Name").equals("USE1")) { 
           inTargetedTag = true; 
          } else { 
           inTargetedTag = false; 
          } 
         } if (tagName.equalsIgnoreCase("UltraSpecialInfo")) { 
          if (inTargetedTag) { 
           ArrayList<String> single_Info = new ArrayList<String>(); 
           single_Info.add(parser.getAttributeValue(null, "Name")); 
           single_Info.add(parser.getAttributeValue(null, "Detail")); 
           single_Info.add(parser.getAttributeValue(null, "TimeStamp")); 
           bundled_Info.add(single_Info); 
          } 
         } 
         break; 
        } 
        eventType = parser.next(); 
       } 
      } catch (FileNotFoundException e) { 
      } catch (IOException e) { 
      } catch (Exception e) { 
      } 
      return bundled_Info; 
     } 

希望這有助於:/

相關問題