Vraag : Me help deze begrijpen klasse zodat ik het kan wijzigen?

Hallo…:)

I am na deze blogpost en probeert om de klasse bij te werken om verschillende gegevens van het Xml- dossier te krijgen…
http://www.smnirven.com/?p =39

This is de daadwerkelijke vraag aan de klasse Geocoder van de ReverseGeocodeLookupTask klasse…
1:
localityName = Geocoder.reverseGeocode (currentLocation);
klasse 

The Geocoder roept dan Google Maps API om XML achter…
1 te krijgen:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
InputStreamReader isr = nieuwe InputStreamReader (connection.getInputStream ());
De bron van InputSource = nieuwe InputSource (isr);
De fabriek van SAXParserFactory = SAXParserFactory.newInstance ();
De syntactische parser van SAXParser = factory.newSAXParser ();
XMLReader xr = parser.getXMLReader ();
De manager van GoogleReverseGeocodeXmlHandler = nieuwe GoogleReverseGeocodeXmlHandler ();

xr.setContentHandler (manager);
xr.parse (bron);

localityName = handler.getLocalityName ();

I zien dat het de klasse van GoogleReverseGeocodeXmlHandler roept, die hieronder wordt getoond, maar ik begrijp werkelijk niet hoe deze klasse…
1 werkt:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
de 
public klasse GoogleReverseGeocodeXmlHandler breidt DefaultHandler uit
{
    privé inLocalityName van Boole = vals;
    privé gebeëindigd van Boole = vals;
    privé bouwer StringBuilder;
    privé Koord localityName;
   
    openbaar Koord getLocalityName ()
    {
        terugkeer this.localityName;
    }
   
    @Override
    openbare nietige karakters (klusje [] CH, int.begin, int.lengte)
           werpt SAXException {
        super.characters (CH, begin, lengte);
        als (this.inLocalityName &&! this.finished)
        {
            als ((CH [begin]! = „\ n“) && (CH [begin]! = ''))
            {
                builder.append (CH, begin, lengte);
            }
        }
    }

    @Override
    openbare nietige endElement (uri van het Koord, Koord localName, de naam van het Koord)
            werpt SAXException
    {
        super.endElement (uri, localName, naam);
       
        als (! this.finished)
        {
            als (localName.equalsIgnoreCase („LocalityName“))
            {
                this.localityName = builder.toString ();
                this.finished = waar;
            }
           
            als (bouwer! = verklaar) nietig
            {
                builder.setLength (0);
            }
        }
    }

    @Override
    openbare nietige startDocument () werpt SAXException
    {
        super.startDocument ();
        bouwer = nieuwe StringBuilder ();
    }

    @Override
    openbare nietige startElement (uri van het Koord, Koord localName, de naam van het Koord, de attributen van Attributen) werpt SAXException
    {
        super.startElement (uri, localName, naam, attributen);
       
        als (localName.equalsIgnoreCase („LocalityName“))
        {
            this.inLocalityName = waar;
        }
    }
}
output 

The XML kijkt als dit…
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:

	
		US
		USA
		
			CA
			
				Santa Clara
				
					Mountain View
					
						1600 Amphitheatre Pkwy
					
					
						94043
					
				
			
		
	


What die ik zou willen om doen ben zowel localityName te worden en countryNameCode tezelfdertijd…
What ik niet kan vinden „wat“ is de variabele het gehele koord bevat XML en hoe deze klasse van GoogleReverseGeocodeXmlHandler werkt aangezien ik om het even wat als een aannemer en whatnot…

Thank niet u zeer…: zie)

CyanBlue

Antwoord : Me help deze begrijpen klasse zodat ik het kan wijzigen?

Dat alles is absoluut het standaard ontleden van de SAXOFOON. Het is gemakkelijk om het te bestuderen:

http://www.cafeconleche.org/books/xmljava/chapters/ch06.html
Andere oplossingen  
 
programming4us programming4us