Use XmlStreamReader to support different encodings
This commit is contained in:
parent
7b4aa15f85
commit
08e4408717
5
pom.xml
5
pom.xml
@ -58,6 +58,11 @@
|
||||
<artifactId>annotations</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.4</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
@ -1,12 +1,17 @@
|
||||
package de.danoeh.antennapod.syndication.handler;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.Reader;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.parsers.SAXParser;
|
||||
import javax.xml.parsers.SAXParserFactory;
|
||||
|
||||
import org.apache.commons.io.input.XmlStreamReader;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import de.danoeh.antennapod.feed.Feed;
|
||||
@ -22,8 +27,13 @@ public class FeedHandler {
|
||||
SAXParserFactory factory = SAXParserFactory.newInstance();
|
||||
factory.setNamespaceAware(true);
|
||||
SAXParser saxParser = factory.newSAXParser();
|
||||
saxParser.parse(new File(feed.getFile_url()), handler);
|
||||
File file = new File(feed.getFile_url());
|
||||
InputStream inputStream = new FileInputStream(file);
|
||||
Reader inputStreamReader = new XmlStreamReader(file);
|
||||
InputSource inputSource = new InputSource(inputStreamReader);
|
||||
|
||||
saxParser.parse(inputSource, handler);
|
||||
inputStream.close();
|
||||
return handler.state.feed;
|
||||
}
|
||||
}
|
||||
|
@ -47,8 +47,7 @@ public class SyndHandler extends DefaultHandler {
|
||||
if (!state.tagstack.empty()) {
|
||||
if (state.getTagstack().size() >= 2) {
|
||||
if (state.contentBuf != null) {
|
||||
String content = new String(ch, start, length);
|
||||
state.contentBuf.append(content);
|
||||
state.contentBuf.append(ch, start, length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,12 @@ public class FeedHandlerTest extends AndroidTestCase {
|
||||
private static final String FEEDS_DIR = "testfeeds";
|
||||
|
||||
private static final String[] urls = {
|
||||
"http://www.dradio.de/rss/podcast/sendungen/wissenschaftundbildung/",
|
||||
"http://www.dradio.de/rss/podcast/sendungen/wirtschaftundverbraucher/",
|
||||
"http://www.dradio.de/rss/podcast/sendungen/literatur/",
|
||||
"http://www.dradio.de/rss/podcast/sendungen/sport/",
|
||||
"http://www.dradio.de/rss/podcast/sendungen/wirtschaftundgesellschaft/",
|
||||
"http://www.dradio.de/rss/podcast/sendungen/filmederwoche/",
|
||||
"http://feeds.feedburner.com/buildanalyze",
|
||||
"http://www.blacksweetstories.com/feed/podcast/",
|
||||
"http://bitlove.org/ranzzeit/ranz/feed",
|
||||
@ -169,7 +175,6 @@ public class FeedHandlerTest extends AndroidTestCase {
|
||||
"http://bitlove.org/hoaxmaster/hoaxilla/feed",
|
||||
"http://bitlove.org/hoaxmaster/psychotalk/feed",
|
||||
"http://bitlove.org/hoaxmaster/skeptoskop/feed",
|
||||
"http://bitlove.org/hobbykoch-podcast/souffle/feed",
|
||||
"http://bitlove.org/hoersuppe/vorcast/feed",
|
||||
"http://bitlove.org/holgi/wrint/feed",
|
||||
"http://bitlove.org/ich-bin-radio/fir/feed",
|
||||
|
Loading…
x
Reference in New Issue
Block a user