2011-11-28 82 views
0

我從soap服務返回對象中的xml。字符串數組java對象

<data><name>Test</name><name>Test</name><name>Test</name></data> 

我需要將其轉換成一個數組,所以我可以輸入成一個列表

String[] accounts = result(this is my object); 

     setListAdapter(new ArrayAdapter<String>(this, R.layout.listaccounts, accounts)); 

我怎樣才能做到這一點。

+0

可能重複[如何使用Java解析此XML?](http://stackoverflow.com/questions/5947450/how-to-parse-this-xml-using-java) –

+0

您需要解析XML。谷歌搜索會給你很多示例代碼。 –

+0

對不起,可能會有像result.toarray()。我是一個java的新手 – Jed

回答

1

如果XML結構非常簡單,那麼正則表達式將爲您解決它。

private static final Pattern pattern = Pattern.compile("<name>([^<]+)</name>"); 
..... 
Matcher m = pattern.compile(xmlString); 
List<String> retList = new ArrayList<String>(); 
while(m.find()) { 
    retList.add(m.group(1)); 
} 
return retList; 

它可以更快地與String.indexOf();

解析噢:人容載量會告訴你使用XML解析器。對於簡單的XML來說,這完全是過度的。只要它沒有嵌套,並且你對屬性不感興趣等等,簡單的方法就可以做到。

+1

哦,是的:大量的人會告訴你使用XML解析器。對於簡單的XML來說,這完全是過度的。只要它沒有嵌套,並且你對屬性不感興趣等等,簡單的方法就可以做到。 –

+0

但真正的SOAP服務響應XML不會像發佈一樣簡單。 – Mudassir

+0

那麼,他沒有這麼說,所以這是一個假設。我經常處理使用簡單的xml返回基本上是字符串列表的soap調用。所以爲什麼我說這種方法只適用於簡單的情況。 –

0

你必須解析XML響應,然後填充字符串數組。對於XML解析,您可以使用SAXParser。

希望這會有所幫助!