我有以下XML输出:
<info>
<ip>70.56.98.195</ip>
<host>70-56-98-195.slkc.qwest.net</host>
<country>UNITED STATES</country>
<cimg>http://localhost/ip-to-country/country-flags/us.png</cimg>
</info>
<searches>
<ips link="http://www.stopforumspam.com/search?q=70.56.98.195" title="Stop Forum Spam"></ips>
<ips link="http://openrbl.org/client/#70.56.98.195" title="Openrbl DNSBL RBL Blacklist"></ips>
<ips link="http://www.afrinic.net/cgi-bin/whois?searchtext=70.56.98.195" title="AfriNIC (Africa)"></ips>
<ips link="http://www.apnic.net/apnic-bin/whois2.pl?searchtext=70.56.98.195" title="APNIC (Asia Pacific region)"></ips>
<ips link="http://ws.arin.net/cgi-bin/whois.pl?queryinput=70.56.98.195" title="ARIN (North America, a portion of the Caribbean and sub-Saharan Africa)"></ips>
<ips link="http://lacnic.net/cgi-bin/lacnic/whois?query=70.56.98.195" title="LACNIC (Latin American and Caribbean region)"></ips>
<ips link="http://www.ripe.net/perl/whois?searchtext=70.56.98.195" title="RIPE (Europe, the Middle East and parts of Africa and Asia)"></ips>
<ips link="http://www.robtex.com/ip/70.56.98.195.html" title="Robtex"></ips>
</searches>
我的问题是,将数据拉出来的最佳方法是什么?是否有更好的方法来放置我的XML数据?
答案 0 :(得分:1)
一个非常好的工具是Simple。您需要做的是编写一个简单的对象来序列化数据。例如。
@Default
private class Structure {
@Path("info")
private String ip;
@Path("host")
private String host;
@Path("path")
private String country;
@Path("path")
private String cimg;
@ElementList
private List<Entry> searches;
@Root
private static class Entry {
@Attribute
private String link;
@Attribute
private String title;
}
}
然后你所要做的就是将数据读入对象实例。
Serializer serializer = new Persister();
Structure structure = serializer.read(Structure.class, inputStream);
此框架适用于几乎所有Android版本。有关详细信息,请参阅Tutorial。