package org.carelife.creader.xmlparser;
import java.util.ArrayList;
import java.util.List;
import org.carelife.creader.dao.RssData;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class RssSXParser extends DefaultHandler {
private String tagName; // ��ǰ������Ԫ�ر�ǩ
private List<RssData> Rss_list;
private RssData rss = new RssData();
private String url = null;
public List<RssData> getRss() {
return Rss_list;
}
public void setversion(List<RssData> Rss_list) {
this.Rss_list = Rss_list;
}
public void startDocument() throws SAXException {
// System.out.println("begin to parse xml file!");
Rss_list = new ArrayList<RssData>();
}
public void endDocment() throws SAXException {
// System.out.println("end of pase!");
}
public void startElement(String namespaceURI, String localName,
String qName, Attributes attr) throws SAXException {
if (localName.equals("item")) {
rss = new RssData();
}else if(localName.equals("enclosure")){
url = null;
url = attr.getValue("url");
rss.setUrl(url);
}
this.tagName = localName;
}
public void endElement(String namespaceURI, String localName, String qName)
throws SAXException {
tagName = "";
if (localName.equals("item")) {
Rss_list.add(rss);
rss = null;
}
this.tagName = null;
}
public void characters(char[] ch, int start, int length)
throws SAXException {
String data = null;
if(tagName != null){
data = new String(ch,start,length);
// System.out.println("tagName"+tagName);
if(tagName.equals("title")){
if(data != null && !data.trim().equals(""))
this.rss.setTitle(data);
}else if(tagName.equals("id")){
if(data != null && !data.trim().equals(""))
this.rss.setId(data);
}else if(tagName.equals("source")){
if(data != null && !data.trim().equals(""))
this.rss.setSource(data);
}else if(tagName.equals("link")){
if(data != null && !data.trim().equals(""))
this.rss.setLink(data);
}else if(tagName.equals("author")){
if(data != null && !data.trim().equals(""))
this.rss.setAuthor(data);
}else if(tagName.equals("guid")){
if(data != null && !data.trim().equals(""))
this.rss.setGuid(data);
}else if(tagName.equals("pubDate")){
if(data != null && !data.trim().equals(""))
this.rss.setPubDate(data);
}else if(tagName.equals("comments")){
if(data != null && !data.trim().equals(""))
this.rss.setComments(data);
}else if(tagName.equals("description")){
if(data != null && !data.trim().equals(""))
this.rss.setDescription(data);
}
}
}
}