Merhaba
yeni başlayan biri olarak rss okuyan bir uygulama yapmak için kıvranıyorum. http://rss.hurriyet.com.tr/rss.aspx?sectionId=1
bu adresteki xml dosyasının içinde description düğümlerinde html tagları var . Tamamı value olarak alamıyorum.
Değer olarak geriye "<" dönderiyor . ilk karaker bu . sonrasını görmüyor. bu özel kararterleri görmezden gelmesini nasıl sağlarım?
Teşekkürler
Kod:
<description><a href="http://www.hurriyet.com.tr/pla......</description>
Kod:
package alp.oku;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class HurriyetActivity extends Activity {
ArrayList<Haber> HaberlerArray = new ArrayList<Haber>();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hbrmain);
setTitle("Haberler");
HaberlerArray = xml*****();
ListView haberList = (ListView) findViewById(R.id.haber_listesi);
HaberAdapter adapter = new HaberAdapter(this, R.layout.listele1, HaberlerArray);
haberList.setAdapter(adapter);
}
private ArrayList<Haber> xml*****() {
ArrayList<Haber> haberArray = new ArrayList<Haber>();
URL url = null;
try {
url = new URL("http://rss.hurriyet.com.tr/rss.aspx?sectionId=1");
//url = new URL("localhost/huriyetrss.xml");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
//dFactory.setIgnoringElementContentWhitespace(false);
DocumentBuilder documentBuilder = dFactory.newDocumentBuilder();
//documentBuilder.SetIgnoringElementContentWhiteSpace(trrue).
Document doc = documentBuilder.parse(new InputSource(url.openStream()));
Element el = doc.getDocumentElement();
NodeList list = el.getElementsByTagName("item");
int k = list.getLength();
for (int i = 0; i < k; i++) {
Node node = list.item(i);
Element eItem = (Element) node;
//title d���m� i�in de�er alal�m
NodeList nodeListTitle = eItem.getElementsByTagName("title");
Element elementTitle = (Element) nodeListTitle.item(0);
String Title = elementTitle.getChildNodes().item(0).getNodeValue();
//linki alal�m
NodeList nodeListLink = eItem.getElementsByTagName("link");
Element elementLink = (Element) nodeListLink.item(0);
String Link = elementLink.getChildNodes().item(0).getNodeValue();
//desicription alal�m
NodeList nodeListdesicription = eItem.getElementsByTagName("description");
Element elementdesicription = (Element) nodeListdesicription.item(0);
String desicription = null;
try {
desicription = elementdesicription.getChildNodes().item(0).getNodeValue();
} catch (Exception e) {
// TODO: handle exception
}
//media:thumbnail alal�m
NodeList nodeListThumnail = eItem.getElementsByTagName("media:thumbnail");
Node node1 = nodeListThumnail.item(0);
String resimyolu = "";
if(node1!=null){
NamedNodeMap nodeMap = node1.getAttributes();
for (int j = 0; j < nodeMap.getLength(); j++) {
Attr att = (Attr) nodeMap.item(0);
resimyolu = att.getValue();
}
}
String Thumnail = resimyolu;
//elde edilen verileri haber yapal�m
Haber haber = new Haber(Title, Link, Thumnail,desicription);
haberArray.add(haber);
}
} catch (Exception ex) {
}
return haberArray;
}
public class HaberAdapter extends ArrayAdapter<Haber>{
ArrayList<Haber> items;
public HaberAdapter(Context context, int textViewResourceId,ArrayList<Haber> objects) {
super(context, textViewResourceId, objects);
this.items = objects;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.listele1, null);
}
TextView title = (TextView) convertView.findViewById(R.id.title);
TextView desicription = (TextView) convertView.findViewById(R.id.desicription);
ImageView thumbnail = (ImageView) convertView.findViewById(R.id.thumbnail);
ImageView oku = (ImageView) convertView.findViewById(R.id.oku);
String bannerpath = items.get(position).getthumbnail();
Bitmap bimage= getBitmapFromURL(bannerpath);
thumbnail.setImageBitmap(bimage);
thumbnail.setBackgroundResource(R.drawable.imageborder);
title.setText(items.get(position).gettitle());
desicription.setText(items.get(position).getDesicription());
title.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(items.get(position).getlink()));
startActivity(browserIntent);
}
});
oku.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(items.get(position).getlink()));
startActivity(browserIntent);
}
});
return convertView;
}
}
public static Bitmap getBitmapFromURL(String src) {
try {
Log.e("src",src);
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
myBitmap = Bitmap.createScaledBitmap(myBitmap, 225, 150, true);
Log.e("Bitmap","returned");
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
Log.e("Exception",e.getMessage());
return null;
}
}
}