1 contributor
package com.yc.rss.radio;
import android.util.Xml;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class RadioXmlParser {
// We don't use namespaces
private static final String ns = null;
public List parse(InputStream in) throws XmlPullParserException, IOException {
try {
XmlPullParser parser = Xml.newPullParser();
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
parser.setInput(in, null);
parser.nextTag();
return readFeed(parser);
} finally {
in.close();
}
}
private List readFeed(XmlPullParser parser) throws XmlPullParserException, IOException {
List entries = new ArrayList();
Entry entry = new Entry("a","b","c","d");
parser.require(XmlPullParser.START_TAG, ns, "channel_list");
while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
// Starts by looking for the item tag
if (name.equals("channel")) {
//entries.add(entry.readEntry(parser));
entries = readFeedChannel(parser);
} else {
entry.skip(parser);
}
}
return entries;
}
private List readFeedChannel(XmlPullParser parser) throws XmlPullParserException, IOException {
List entries = new ArrayList();
Entry entry = new Entry("a","b","c","d");
parser.require(XmlPullParser.START_TAG, ns, "channel");
while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
// Starts by looking for the item tag
if (name.equals("item")) {
entries.add(entry.readItem(parser));
} else {
entry.skip(parser);
}
}
return entries;
}
}