------

[ AD ] Port Monitor ( Try to use a Best WebSite Monitoring Tool )

------

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.

+ Recent posts