summaryrefslogtreecommitdiff
path: root/src/de/podfetcher/syndication/handler
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/podfetcher/syndication/handler')
-rw-r--r--src/de/podfetcher/syndication/handler/HandlerState.java7
-rw-r--r--src/de/podfetcher/syndication/handler/RSSHandler.java8
-rw-r--r--src/de/podfetcher/syndication/handler/SyndHandler.java3
3 files changed, 11 insertions, 7 deletions
diff --git a/src/de/podfetcher/syndication/handler/HandlerState.java b/src/de/podfetcher/syndication/handler/HandlerState.java
index 159f646f5..9eccf4f74 100644
--- a/src/de/podfetcher/syndication/handler/HandlerState.java
+++ b/src/de/podfetcher/syndication/handler/HandlerState.java
@@ -5,6 +5,7 @@ import java.util.HashMap;
import java.util.Stack;
import de.podfetcher.syndication.namespace.Namespace;
+import de.podfetcher.syndication.namespace.SyndElement;
import de.podfetcher.feed.Feed;
import de.podfetcher.feed.FeedItem;
@@ -13,13 +14,13 @@ public class HandlerState {
/** Feed that the Handler is currently processing. */
protected Feed feed;
protected FeedItem currentItem;
- protected Stack<String> tagstack;
+ protected Stack<SyndElement> tagstack;
/** Namespaces that have been defined so far. */
protected HashMap<String, Namespace> namespaces;
public HandlerState(Feed feed) {
this.feed = feed;
- tagstack = new Stack<String>();
+ tagstack = new Stack<SyndElement>();
namespaces = new HashMap<String, Namespace>();
}
@@ -30,7 +31,7 @@ public class HandlerState {
public FeedItem getCurrentItem() {
return currentItem;
}
- public Stack<String> getTagstack() {
+ public Stack<SyndElement> getTagstack() {
return tagstack;
}
diff --git a/src/de/podfetcher/syndication/handler/RSSHandler.java b/src/de/podfetcher/syndication/handler/RSSHandler.java
index f750b0a92..5a61b9daa 100644
--- a/src/de/podfetcher/syndication/handler/RSSHandler.java
+++ b/src/de/podfetcher/syndication/handler/RSSHandler.java
@@ -6,6 +6,7 @@ import de.podfetcher.feed.Feed;
import de.podfetcher.feed.FeedImage;
import de.podfetcher.feed.FeedItem;
import de.podfetcher.feed.FeedMedia;
+import de.podfetcher.syndication.namespace.SyndElement;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
@@ -42,9 +43,10 @@ public class RSSHandler extends SyndHandler {
throws SAXException {
if (state.tagstack.size() >= 2) {
String content = new String(ch, start, length);
- String top = state.tagstack.pop();
- String second = state.tagstack.peek();
- state.tagstack.push(top);
+ SyndElement topElement = state.tagstack.pop();
+ String top = topElement.getName();
+ String second = state.tagstack.peek().getName();
+ state.tagstack.push(topElement);
if (top.equals(TITLE)) {
if (second.equals(ITEM)) {
state.currentItem.setTitle(content);
diff --git a/src/de/podfetcher/syndication/handler/SyndHandler.java b/src/de/podfetcher/syndication/handler/SyndHandler.java
index 9ee604244..4fc47fb63 100644
--- a/src/de/podfetcher/syndication/handler/SyndHandler.java
+++ b/src/de/podfetcher/syndication/handler/SyndHandler.java
@@ -8,6 +8,7 @@ import android.util.Log;
import de.podfetcher.feed.Feed;
import de.podfetcher.syndication.namespace.Namespace;
+import de.podfetcher.syndication.namespace.SyndElement;
import de.podfetcher.syndication.namespace.atom.NSAtom;
/** Superclass for all SAX Handlers which process Syndication formats */
@@ -22,7 +23,7 @@ public abstract class SyndHandler extends DefaultHandler{
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
- state.tagstack.push(qName);
+ state.tagstack.push(new SyndElement(qName));
String[] parts = qName.split(":");
String prefix = "";