getting the value from an attribute of an element in an rss xml feed

by LuKeNuKuM » Fri, 04 Sep 2009 01:53:03 GMT


Sponsored Links
 i folks,

i've been struggling to find a way to read in a url value from within
a tag in an xml feed. im so close but i just can't seem to crack it.

i started out using this http://www.devx.com/wireless/Article/39810/1954
as a guide which works great but customising it to read in an
attribute of an element is causing me problems.

the feed is here:
http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml

within the xml's 'item' element is <media:thumbnail width="X"
height="X" url="X"/> it's the url attribute im after. i can get the
title back fine but the structure of the media:thumbnail tag means im
missing something!

what's interesting(!?) is the fact that when i remove the loop and
only go for the first item, i get the image back! the line with strImg
= imgElement.getAttribute("url") just won't work within the loop...
any ideas are greatly appreciated.

this is very rough n ready, im learning :-)

========================

package apps.httpDownload;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;

import android.widget.ImageView;
import android.widget.TextView;

public class httpDownload extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ArrayList<String> dataReturned = DownloadRSS("http://
newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml");

TextView txt = (TextView) findViewById(R.id.text);
for (int i = 0; i < dataReturned.size(); i++) {
if (i < 10)
txt.setText(txt.getText() + "\n" + dataReturned.get(i) +
"\n");

Bitmap bitmap =
DownloadImage(dataReturned.get(1));
ImageView img = (ImageView) findViewById(R.id.img);
img.setImageBitmap(bitmap);

}


}

private InputStream OpenHttpConnection(String urlString)
throws IOException
{
InputStream in = null;
int response = -1;

URL url = new URL(urlString);
URLConnection conn = url.openConnection();

if (!(conn instanceof HttpURLConnection))
throw new IOException("Not an HTTP connection");

try{
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.connect();

response = httpConn.getResponseCode();
if (response == HttpURLConnection.HTTP_OK) {
in = httpConn.getInputStream();
}
}
catch (Exception ex)



Other Threads

1. Asynch Network Library

Hello everyone

Do you know some asynch network io library for android?


Powered by Telkomsel BlackBerry

-- 

2. Using BroadcastReceiver in JUnit tests

Hi everyone,

Is it possible to receive notification from activities in a test case?

I want to test async precesses with broadcast messages. If process
done I  send broadcast and catch it in a test case, but anything
doesn't happen.

I declared receiver in manifest.

This is my example: MainApp
 Intent intent = new Intent();
 intent.putExtra("test_message", "main data received");
 intent.setAction("test_message");
 sendBroadcast(intent);

TestReceiver:

public class TestBroadcastReceiver extends  BroadcastReceiver{

        @Override
        public void onReceive(Context arg0, Intent intent) {
                Log.d("TestBroadcastReceiver", "broadcast received");
                if(intent.getStringExtra("test_message") != null){
                        String testMessage = 
intent.getStringExtra("test_message");
                        Log.d("TestBroadcastReceiver", "test message: 
"+testMessage);
                }

        }
}

-- 

3. webview adds extra horizontal space in the screen

4. The seek bar of Mediacontroller is not been updating according to de audio player

5. Your content must have a ListView whose id attribute is 'android.R.id.list'

6. Long Click on ListActivity item

7. USB adb connection to Samsung Galaxy