2013-04-04 5 views
0

Я успешно извлекаю тег из xml-контента, используя jsoup для одного элемента.Soap Setter Getter android

class Post { 

    private String a; 
    private String b; 


    public void setA (String a){ 
      this.a = a; 

    } 


    public void setB(String b){ 
      this.b =b; 

    } 

    public String getA(){ 

    return a; 
    } 

    public String getB(){ 

    return b; 
    } 

    } 

с помощью ArrayList

public ArrayList<Post> PostList = new ArrayList<Post>(); 

Так как я может хранить значения в Ь при различных индекса, используя jsoup. я извлечь один тег

Document doc = Jsoup.parse(soap_xml_content); 

Element element1 = doc.select("a"); 
Element element2 = doc.select("b"); 
Element compte = doc.select("comptes"); 

String value_a = element1.text(); 
String value_b = element2.text(); 

Post currentPost = new Post(); 

для каждого compte Я хочу, чтобы установить элемент а и Ь в классе Post и Асесс его с помощью метода GET.

for(Element element : compte){ 

       System.out.println(": "+element); 
       currentPost.setA(element); 
          currentPost.setB(element); 
          Poslist.add(currentPost); 
          currentPost = new Post(); 
      } 

я знаю, я ошибаюсь, но я не знаю, как сделать этот шаг пожалуйста, помогите.


Xml:

<soap:Envelope xmlns:soap="schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <liste> 
      <comptes> 
       <a>pen drive</a> 
       <b>jsoup</b> 
      </comptes> 
      <comptes> 
       <a>pen drive</a> 
       <b>jsoup</b> 
      </comptes> 
      <comptes> 
       <a>pen drive</a> 
       <b>jsoup</b> 
      </comptes> 
     </liste> 
    </soap:Body> 
</soap:Envelope> 



04-04 10:39:25.535: E/AndroidRuntime(2532): FATAL EXCEPTION: AsyncTask #1 
04-04 10:39:25.535: E/AndroidRuntime(2532): java.lang.RuntimeException: An error occured while executing doInBackground() 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at android.os.AsyncTask$3.done(AsyncTask.java:200) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at java.util.concurrent.FutureTask.setException(FutureTask.java:125) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at java.lang.Thread.run(Thread.java:1019) 
04-04 10:39:25.535: E/AndroidRuntime(2532): Caused by: java.lang.NullPointerException: null format argument 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at java.lang.String.format(String.java:2173) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at java.lang.String.format(String.java:2151) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at .Convertor$loadingTask.doInBackground(Convertor.java:201) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at .Convertor$loadingTask.doInBackground(Convertor.java:1) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at android.os.AsyncTask$2.call(AsyncTask.java:185) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
04-04 10:39:25.535: E/AndroidRuntime(2532):  ... 4 more 

ответ

0

Сделать Конструктора в сообщении класса общественности Post (A, B)

public Post(String a, String b){ 
this.a =a; 
this.b =b; 

} 

и:

for(Element element : compte){ 

    System.out.println(": "+element); 

    Poslist.add(new Post(ElementA,ElementB)); 

} 

Вы не будете быть usi ng Setters с указанным выше решением. Вы просто добавляете объекты класса в свой ArrayList типа Post. Чтобы использовать метод get, вы сделаете это так.

String A = Poslist.get(YOUR_POSTION).getA(); 
String B = Poslist.get(YOUR_POSTION).getB();