Author: prinks Language: text
Description: No description (v2) Timestamp: 2013-05-23 17:15:56 +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.                 source = (TextView) findViewById(R.id.source);
  52.                 result = (TextView) findViewById(R.id.result);
  53.                
  54.                 @Override
  55.                 public void onClick(View view)
  56.                 {
  57.                     String url = "https://www.google.com.bd/"; // Random site with XML data
  58.  
  59.                     String[] tags = new String[] { "ARTIST" };
  60.                     String code = "";
  61.                     String parsed = "";
  62.  
  63.                     try
  64.                     {
  65.                         WebActivity mGrabber;
  66.                                 code = mGrabber.grabSource(url);
  67.                         parsed = mGrabber.parseTags(code, tags);
  68.                     }
  69.                     catch (Exception e)
  70.                     {
  71.                         e.printStackTrace();
  72.                         return;
  73.                     }
  74.  
  75.                     TextView source = (TextView) findViewById(R.id.source);
  76.                     source.setText(code);
  77.  
  78.                     TextView result = (TextView) findViewById(R.id.result);
  79.                     result.setText(parsed);
  80.                 }
  81.                
  82.         }
  83.  
  84.  
  85.     public void SrcGrabber()
  86.     {
  87.         mRequest = new HttpGet();
  88.         mClient = new DefaultHttpClient();
  89.         mReader = null;
  90.  
  91.         try
  92.         {
  93.             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  94.             factory.setIgnoringComments(true);
  95.             mBuilder = factory.newDocumentBuilder();
  96.         }
  97.         catch (ParserConfigurationException e)
  98.         {
  99.             e.printStackTrace();
  100.         }
  101.  
  102.         mBuffer = new StringBuffer(2000);
  103.         mNewLine = System.getProperty("line.separator");
  104.     }
  105.  
  106.     public String grabSource(String url) throws ClientProtocolException, IOException, URISyntaxException
  107.     {
  108.         mBuffer.setLength(0);
  109.  
  110.         try
  111.         {
  112.             mRequest.setURI(new URI(url));
  113.             HttpResponse response = mClient.execute(mRequest);
  114.  
  115.             mReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
  116.  
  117.             String line = "";
  118.             while ((line = mReader.readLine()) != null)
  119.             {
  120.                 mBuffer.append(line);
  121.                 mBuffer.append(mNewLine);
  122.             }
  123.         }
  124.         finally
  125.         {
  126.             closeReader();
  127.         }
  128.  
  129.         return mBuffer.toString();
  130.     }
  131.  
  132.     public String parseTags(String code, String[] tags) throws IOException, SAXException
  133.     {
  134.         mBuffer.setLength(0);
  135.  
  136.         Document doc = mBuilder.parse(new ByteArrayInputStream(code.getBytes()));
  137.         Element el = (Element) doc.getDocumentElement();
  138.  
  139.         for (String tag : tags)
  140.             parseTags(((Document) el).getElementsByTagName(tag));
  141.        
  142.             return mBuffer.toString();
  143.     }
  144.  
  145.     protected void parseTag(Node node)
  146.     {
  147.         if (node.getNodeType() == Node.TEXT_NODE)
  148.         {
  149.             mBuffer.append(node.getNodeValue());
  150.             mBuffer.append(mNewLine);
  151.         }
  152.     }
  153.  
  154.     private void closeReader()
  155.     {
  156.         if (mReader == null)
  157.             return;
  158.  
  159.         try
  160.         {
  161.             mReader.close();
  162.         }
  163.         catch (Exception e)
  164.         {
  165.             e.printStackTrace();
  166.         }
  167.     }
  168.  
  169.     private void parseTags(NodeList nodes)
  170.     {
  171.         int length = nodes.getLength();
  172.  
  173.         for (int i = 0; i < length; ++i)
  174.             parseTag(nodes.item(i).getFirstChild());
  175.     }
  176.        
  177. }
  178.  
View raw paste Parent paste by: prinks - Child paste by: anan Reply