2014-04-24 26 views
0

我正在尋找幫助將XML獲取到arraylist。將XML解析爲一個Stringarray

這裏是XML:

<campagne> 
    <sms><texte> 
      Vente a Drouot 
    </texte> 
    <list> 
    <id> 1 </id> 
     <nom> TOTO </nom> 
    <id> 2 </id> 
     <nom> TATA </nom> 
    <id> 3 </id> 
     <nom> Mr.Gerard </nom> 
    </list> 
</sms> 
</campagne> 

我想有TOTO,TATA,Mr.Gerard到字符串數組[]完全一樣,如果我把手動:字符串[]客戶= { 「TOTO」,」 TATA」, 「Mr.Gerard」}

現在我XMlPullParser(我已經寫了 「ArrayList的clientslist = NULL;」 之前,我想把差異名在這個陣列) :

public void parseXMLAndStoreIt(XmlPullParser myParser) { 
     int event; 
     String text = null; 
ArrayList<Client> clientslist = null; 

     try { 
      event = myParser.getEventType(); 
      while (event != XmlPullParser.END_DOCUMENT) { 
       String name = myParser.getName(); 

       switch (event) { 
       case XmlPullParser.START_TAG: 
        break; 
       case XmlPullParser.TEXT: 
        text = myParser.getText(); 
        break; 

       case XmlPullParser.END_TAG: 
        if (name.equals("texte")) 
         message = text.trim(); 

        else if (name.equals("nom")) 
         clientslist = text.trim(); // error is here 

        else 

        break; 
       } 
       event = myParser.next(); 

      } 
      parsingComplete = false; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 

同這個代碼我只Mr.Gerard ...

回答

1

我想clientsString - 它應該是一個List<String>而不是和clients = text.trim();應該clients.add(text.trim());

更換然後就可以調用clients.toArray(new String[clients.size()])得到一個String數組你通緝。

+0

對不起,我忘了說,我把\t的ArrayList clientslist = NULL; 之前,我發佈的整個代碼,所以我更換客戶端(這是一個數組),它使一個錯誤,我不得不改變爲字符串) – Nemka

+0

好的。用clientslist.add(new Client(text.trim()));替換'clients = text.trim();'填充'clientslist'。然後你可以通過'clientslist.toArray(new Client [clientslist.size()])從'clientslist'中讀取'List'或者獲取它的值數組。' – mvmn

+1

P.S.並且不用null初始化。 'List clientslist = new ArrayList ();'改爲。 – mvmn

1

什麼是clients成員變量?沒有看到代碼的其餘部分,看起來你只是將它寫在最後的<nom>元素上。

使用列表並將每個<nom>添加到該列表,然後將列表轉換爲字符串數組。

0

使用字符串數組的索引更新值。

public void parseXMLAndStoreIt(XmlPullParser myParser) { 
     int event; 
     int counter = 0; 
     String text = null; 
     String[] clients = {}; 

     try { 
      event = myParser.getEventType(); 
      while (event != XmlPullParser.END_DOCUMENT) { 
       String name = myParser.getName(); 

       switch (event) { 
       case XmlPullParser.START_TAG: 
        break; 
       case XmlPullParser.TEXT: 
        text = myParser.getText(); 
        break; 

       case XmlPullParser.END_TAG: 
        if (name.equals("texte")) 
         message = text.trim(); 

        else if (name.equals("nom")) 
         clients[counter++] = text.trim(); 

        else 

        break; 
       } 
       event = myParser.next(); 

      } 
      parsingComplete = false; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
0
public ArrayList<String> parseXMLAndStoreIt(XmlPullParser myParser) { 
     ArrayList<String> clientslist = new ArrayList<String>;  // 1 
        ... 
        else if (name.equals("nom")){ 
         clients = text.trim(); 
         clientslist.add(text.trim());  //2 
        } 
        ... 
     return clientslist; //3 
    } 

末,你可以得到的名單