2010-11-29 13 views
0

Ich habe die folgende XML-Ausgabe:Wie würde ich diese XML-Daten extrahieren?

<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> 

Meine Frage ist, was der beste Weg ist, dass die Daten herausziehen und gibt es eine bessere Art, wie ich meine XML-Daten sein sollte darauf setzen?

+1

Sie haben geschrieben: "Gibt es einen besseren Weg, meine XML-Daten auszugeben?" *. Wie wäre es mit einem wohlgeformten XML-Dokument ?! :) –

Antwort

1

Ein ziemlich gutes Werkzeug dafür ist Simple. Sie müssten ein einfaches Objekt schreiben, um die Daten zu serialisieren. Beispielsweise.

@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; 
    } 
} 

Dann alles, was Sie tun müssten, liest die Daten in eine Objektinstanz.

Serializer serializer = new Persister(); 
Structure structure = serializer.read(Structure.class, inputStream); 

Dieses Framework funktioniert für fast alle Android-Versionen. Für weitere Informationen gibt es eine Tutorial.

Verwandte Themen