Author: anan Language: java
Description: No description (v3) Timestamp: 2013-05-23 17:19:27 +0000
View raw paste Parent paste by: prinks - Child paste by: anan Reply
  1. package com.practice.main;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.ByteArrayInputStream;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.net.URI;
  8. import java.net.URISyntaxException;
  9.  
  10. import javax.xml.parsers.DocumentBuilder;
  11. import javax.xml.parsers.DocumentBuilderFactory;
  12. import javax.xml.parsers.ParserConfigurationException;
  13.  
  14. import org.apache.http.HttpResponse;
  15. import org.apache.http.client.ClientProtocolException;
  16. import org.apache.http.client.HttpClient;
  17. import org.apache.http.client.methods.HttpGet;
  18. import org.apache.http.impl.client.DefaultHttpClient;
  19. import org.w3c.dom.Document;
  20. import org.w3c.dom.Node;
  21. import org.w3c.dom.NodeList;
  22. import org.xml.sax.SAXException;
  23.  
  24. import android.app.Activity;
  25. import android.os.Bundle;
  26. import android.sax.Element;
  27. import android.view.View;
  28. import android.widget.Button;
  29. import android.widget.TextView;
  30.  
  31. public class WebActivity extends Activity
  32. {
  33.         private HttpGet mRequest;
  34.     private HttpClient mClient;
  35.     private BufferedReader mReader;
  36.  
  37.     private DocumentBuilder mBuilder;
  38.  
  39.     private StringBuffer mBuffer;
  40.     private String mNewLine;
  41.    
  42.     TextView source;
  43.     TextView result;
  44.  
  45.    
  46.         protected void onCreate(Bundle savedInstanceState)
  47.         {
  48.                 super.onCreate(savedInstanceState);
  49.                 setContentView(R.layout.web_activity);
  50.                
  51.                     String url = "https://www.google.com.bd/"; // Random site with XML data
  52.  
  53.                     String[] tags = new String[] { "ARTIST" };
  54.                     String code = "";
  55.                     String parsed = "";
  56.  
  57.                     try
  58.                     {
  59.                         WebActivity mGrabber;
  60.                                 code = mGrabber.grabSource(url);
  61.                         parsed = mGrabber.parseTags(code, tags);
  62.                     }
  63.                     catch (Exception e)
  64.                     {
  65.                         e.printStackTrace();
  66.                         return;
  67.                     }
  68.  
  69.                     TextView source = (TextView) findViewById(R.id.source);
  70.                     source.setText(code);
  71.  
  72.                     TextView result = (TextView) findViewById(R.id.result);
  73.                     result.setText(parsed);
  74.                
  75.         }
  76.  
  77.  
  78.     public void SrcGrabber()
  79.     {
  80.         mRequest = new HttpGet();
  81.         mClient = new DefaultHttpClient();
  82.         mReader = null;
  83.  
  84.         try
  85.         {
  86.             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  87.             factory.setIgnoringComments(true);
  88.             mBuilder = factory.newDocumentBuilder();
  89.         }
  90.         catch (ParserConfigurationException e)
  91.         {
  92.             e.printStackTrace();
  93.         }
  94.  
  95.         mBuffer = new StringBuffer(2000);
  96.         mNewLine = System.getProperty("line.separator");
  97.     }
  98.  
  99.     public String grabSource(String url) throws ClientProtocolException, IOException, URISyntaxException
  100.     {
  101.         mBuffer.setLength(0);
  102.  
  103.         try
  104.         {
  105.             mRequest.setURI(new URI(url));
  106.             HttpResponse response = mClient.execute(mRequest);
  107.  
  108.             mReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
  109.  
  110.             String line = "";
  111.             while ((line = mReader.readLine()) != null)
  112.             {
  113.                 mBuffer.append(line);
  114.                 mBuffer.append(mNewLine);
  115.             }
  116.         }
  117.         finally
  118.         {
  119.             closeReader();
  120.         }
  121.  
  122.         return mBuffer.toString();
  123.     }
  124.  
  125.     public String parseTags(String code, String[] tags) throws IOException, SAXException
  126.     {
  127.         mBuffer.setLength(0);
  128.  
  129.         Document doc = mBuilder.parse(new ByteArrayInputStream(code.getBytes()));
  130.         Element el = (Element) doc.getDocumentElement();
  131.  
  132.         for (String tag : tags)
  133.             parseTags(((Document) el).getElementsByTagName(tag));
  134.        
  135.             return mBuffer.toString();
  136.     }
  137.  
  138.     protected void parseTag(Node node)
  139.     {
  140.         if (node.getNodeType() == Node.TEXT_NODE)
  141.         {
  142.             mBuffer.append(node.getNodeValue());
  143.             mBuffer.append(mNewLine);
  144.         }
  145.     }
  146.  
  147.     private void closeReader()
  148.     {
  149.         if (mReader == null)
  150.             return;
  151.  
  152.         try
  153.         {
  154.             mReader.close();
  155.         }
  156.         catch (Exception e)
  157.         {
  158.             e.printStackTrace();
  159.         }
  160.     }
  161.  
  162.     private void parseTags(NodeList nodes)
  163.     {
  164.         int length = nodes.getLength();
  165.  
  166.         for (int i = 0; i < length; ++i)
  167.             parseTag(nodes.item(i).getFirstChild());
  168.     }
  169.        
  170. }
  171.  
View raw paste Parent paste by: prinks - Child paste by: anan Reply