0

XML を arraylist に取得するためのヘルプを探しています。

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 を StringArray[] に配置したい: String[] Customers = {"TOTO","TATA","Mr.Gerard"}

今のところ、私の XMlPullParser (以前に「 ArrayList clientslist = null; 」と書いたことがありますが、この Array に違いの名前を入れたいと思います):

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 だけを持っています...

4

4 に答える 4

1

clientsメンバー変数とは何ですか? コードの残りの部分を見ないと、たまたま最後の<nom>要素になったもので単純に上書きしているように見えます。

List を使用してそれぞれを追加<nom>し、リストを文字列配列に変換します。

于 2014-04-24T16:29:09.020 に答える
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
    }

最後に、リストを取得できます

于 2014-04-24T16:40:00.660 に答える