2011-11-28 94 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。

希望这会有所帮助!

相关问题