Ok, i contacted with Croccy22 and sent me a snippet which worked for me, so i send my code:
This class is called ParsingXML
======================================================================
// 자바 소스 import java.io.InputStream; import java.net.URI; import java.net.URL; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.apache.http.HttpResponse; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.client.DefaultHttpClient; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; public class ParsingXML extends Activity { private static final String Username = "yourusername"; private static final String Password = "yourpassword"; private final String MY_DEBUG_TAG = "Enter"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); /* Create a new TextView to display the parsingresult later. */ TextView tv = new TextView(this); //Start the XML Parsing try { //First create defaulthttpclient DefaultHttpClient http = new DefaultHttpClient(); //Create credentials for basic auth UsernamePasswordCredentials c = new UsernamePasswordCredentials(Username,Password); //create a basic credentials provider and pass the credentials BasicCredentialsProvider cP = new BasicCredentialsProvider(); cP.setCredentials(AuthScope.ANY, c ); //Set credentials provider for our default http client so it will use those credentials http.setCredentialsProvider(cP); //get what we want from the target site HttpResponse res = http.execute(new HttpGet("http://your_target_site.com/1.xml")); InputStream is =res.getEntity().getContent(); //Create a SAXParser to parse the XML file SAXParserFactory spf =SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); //Set a handler to parse the XML ExampleHandler myExampleHandler = new ExampleHandler(); xr.setContentHandler(myExampleHandler); xr.parse(new InputSource(is)); //Retrieve result from the parser ParsedExampleDataSet parsedExampleDataSet = myExampleHandler.getParsedData(); // Set the result to be displayed in our GUI. */ tv.setText(parsedExampleDataSet.toString()); } catch (Exception e) { /* Display any Error to the GUI. */ tv.setText("Error: " + e.getMessage()); Log.e(MY_DEBUG_TAG, "WeatherQueryError", e); } /* Display the TextView. */ this.setContentView(tv); } }======================================================================
Here's another class called ExampleHandler
import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class ExampleHandler extends DefaultHandler{ // =========================================================== // Fields // =========================================================== private boolean in_outertag = false; private boolean in_innertag = false; private boolean in_first_name = false; private boolean in_last_name = false; private boolean in_bio = false; private ParsedExampleDataSet myParsedExampleDataSet = new ParsedExampleDataSet(); // =========================================================== // Getter & Setter // =========================================================== public ParsedExampleDataSet getParsedData() { return this.myParsedExampleDataSet; } // =========================================================== // Methods // =========================================================== @Override public void startDocument() throws SAXException { this.myParsedExampleDataSet = new ParsedExampleDataSet(); } @Override public void endDocument() throws SAXException { // Nothing to do } /** Gets be called on opening tags like: ** Can provide attribute(s), when xml was like: * */ @Override public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { if (localName.equals("users")) { this.in_outertag = true; }else if (localName.equals("user")) { this.in_innertag = true; }else if (localName.equals("first-name")) { this.in_first_name = true; }else if (localName.equals("last-name")) { this.in_last_name = true; }else if (localName.equals("bio")) { this.in_bio = true; } } /** Gets be called on closing tags like: * */ @Override public void endElement(String namespaceURI, String localName, String qName) throws SAXException { if (localName.equals("users")) { this.in_outertag = false; }else if (localName.equals("user")) { this.in_innertag = false; }else if (localName.equals("first-name")) { this.in_first_name = false; }else if (localName.equals("last-name")) { this.in_last_name = false; }else if (localName.equals("bio")) { this.in_bio = false; } } /** Gets be called on the following structure: *characters */ @Override public void characters(char ch[], int start, int length) { if(this.in_first_name){ myParsedExampleDataSet.setExtractedString(new String(ch, start, length)); } if(this.in_last_name){ myParsedExampleDataSet.setExtractedString1(new String(ch, start, length)); } if(this.in_bio){ myParsedExampleDataSet.setExtractedString2(new String(ch, start, length)); } } }
======================================================================
And finally the class ParsedExampleDataSet
public class ParsedExampleDataSet { private String extractedString = null; private String extractedString1 = null; private String extractedString2 = null; private int extractedInt = 0; public void setExtractedString(String extractedString) { this.extractedString = extractedString; } public String getExtractedString() { return extractedString; } public void setExtractedString1(String extractedString1) { this.extractedString1 = extractedString1; } public String getExtractedString1() { return extractedString1; } public void setExtractedString2(String extractedString2) { this.extractedString2 = extractedString2; } public String getExtractedString2() { return extractedString2; } public void setExtractedInt(int extractedInt) { this.extractedInt = extractedInt; } public int getExtractedInt() { return extractedInt; } public String toString(){ //return "ExtractedString = " + this.extractedString // + "\nExtractedInt = " + this.extractedInt; return "Nombre : " + this.extractedString + "\n" + "Apellido : " + this.extractedString1 + "\n" + "Biografia : " + this.extractedString2; } }
Also i would like to thank you to padde, and plusminus, because they are so attentive with the community, that's why Anddev.org is the most important Android Community of the World.
'0.일반개발' 카테고리의 다른 글
애플 에어 프린트 ^^ 와우~~~ (0) | 2010.09.16 |
---|---|
SQLite3 (0) | 2010.09.16 |
이클립스 멤버 변수 / 멤버 함수 생성기 (0) | 2010.09.16 |
Asynchronously fetching images from Internet in Android (0) | 2010.09.16 |
안드로이드 ( 내부 layout 모듈 xml ) (0) | 2010.09.16 |