Hi everyone,
I am a beginner of android programming, these several weeks I am
trying to write a RSS reader.
As I said, I use SAX to retrieve the elements from xml of a website.
All other elements I can retrieve except the content inside the
<content:encoded>.
Below is my Handler.java
can anyone help me?
thz so much~~~
______________________________________________________________________________
package first.user_ss;
import java.util.ArrayList;
import java.util.List;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MyHandler extends DefaultHandler{
private boolean in_item = false;
private boolean in_title = false;
private boolean in_link = false;
private boolean in_desc = false;
private boolean in_date = false;
private boolean in_contentencoded =false; //it is added by myself
private boolean in_cate=false;
private boolean in_mainTitle = false;
private List<News> li;
private News news;
private String title="";
private StringBuffer buf=new StringBuffer();
public List<News> getParsedData()
{
return li;
}
public String getRssTitle()
{
return title;
}
@Override
public void startDocument() throws SAXException
{
li = new ArrayList<News>();
}
@Override
public void endDocument() throws SAXException
{
}
@Override
public void startElement(String namespaceURI, String localName,
String qName, Attributes atts) throws SAXException
{
if (localName.equals("item"))
{
this.in_item = true;
news=new News();
}
else if (localName.equals("title"))
{
if(this.in_item)
{
this.in_title = true;
}
else
{
this.in_mainTitle = true;
}
}
else if (localName.equals("link"))
{
if(this.in_item)
{
this.in_link = true;
}
}
else if (localName.equals("description"))
{
if(this.in_item)
{
this.in_desc = true;
}
}
else if (localName.equals("pubDate"))
{
if(this.in_item)
{
this.in_date = true;
}
}
else if (localName.equals("content:encoded"))
{
if(this.in_item)
{
this.in_contentencoded = true;
}
}
else if (localName.equals("category"))
{
if(this.in_item)
{
this.in_cate = true;
}
}
}
@Override
public void endElement(String namespaceURI, String localName,
String qName) throws SAXException
{
if (localName.equals("item"))
{
this.in_item = false;
li.add(news);
}
else if (localName.equals("title"))
{
if(this.in_item)
{
news.setTitle(buf.toString().trim());
buf.setLength(0);
this.in_title = false;
}
else
{
title=buf.toString().trim();
buf.setLength(0);
this.in_mainTitle = false;
}
}
else if (localName.equals("link"))
{
if(this.in_item)
{
news.setLink(buf.toString().trim());
buf.setLength(0);
this.in_link = false;
}
}
else if (localName.equals("description"))
{
if(in_item)
{
news.setDesc(buf.toString().trim());
buf.setLength(0);
this.in_desc = false;
}
}
else if (localName.equals("pubDate"))
{
if(in_item)
{
news.setDate(buf.toString().trim());
buf.setLength(0);
this.in_date = false;
}
}
else if (localName.equals("content:encoded"))
{
if(this.in_item)
{
news.setCon(buf.toString().trim());
buf.setLength(0);
this.in_contentencoded = false;
}
}
else if (localName.equals("category"))
{
if(in_item)
{
news.setCate(buf.toString().trim());
buf.setLength(0);
this.in_cate = false;
}
}
}
@Override
public void characters(char ch[], int start, int length)
{
if(this.in_item||this.in_mainTitle)
{
buf.append(ch,start,length);
}
}
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en