- Forum-Beiträge: 46
12.01.2015, 14:14:23 via Website
12.01.2015 14:14:23 via Website
Ich habe folgenden Code der Super funktioniert
private List readFeed(XmlPullParser parser, String rssLink, String autorpic) throws XmlPullParserException, IOException {
parser.require(XmlPullParser.START_TAG, null, "rss");
String title = null;
String link = null;
String pubDate = null;
String autor = null;
String autorimage = null;
String imageUrlContent = null;
String imageUrlDescription = null;
String imageUrl = null;
List<RssItem> items = new ArrayList<>();
Boolean readItemContent = false;
while (parser.next() != XmlPullParser.END_DOCUMENT) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
if (name.equals("item")) {
readItemContent = true;
}
if (readItemContent) {
if (name.equals("title")) {
String dirtTitle = readValue(parser, "title");
{
title = cleanTitle(dirtTitle);
}
} else if (name.equals("link")) {
link = readValue(parser, "link");
// Log.d("RssParserLink", "url: " + link);
} else if (name.equals("pubDate")) {
pubDate = readDate(parser);
} else if (name.equals("description")) {
// Parse the html description to get the image url
String html = readValue(parser, "description");
org.jsoup.nodes.Document docHtml = Jsoup.parse(html);
Log.d("RssParserLink", "Des: "+ autor + docHtml);
Element imgElement = docHtml.select("img").first();
if (imgElement != null){
imageUrlDescription = imgElement.attr("src");
Log.d("RssParserLink", "Imagendes: "+ autor + imageUrl);
} else {
Log.d ("RssParserLink", "Kein Link" + autor );
}
} else if (name.equals("content:encoded")) { // name.equals("description")||name.equals("content:encoded")) {
// Parse the html description to get the image url
String html = readValue(parser, "content:encoded");
org.jsoup.nodes.Document docHtml = Jsoup.parse(html);
Log.d("RssParserLink", "Con: " + docHtml);
Element imgElement = docHtml.select("img").first();
if (imgElement != null){
imageUrlContent = imgElement.attr("src");
if (imageUrlContent != null) {
// String imagenUrlDes = imageUrlContent;
Log.d("RssParserLink", "Imagendes: " + imageUrl);
}
//Log.d("RssParser", "url: " + imageUrlDescription);
}
}
if (imageUrlDescription != null) {
imageUrl = imageUrlDescription;
} else {
if (imageUrlContent != null) {
imageUrl = imageUrlContent;
}
}
autor = new String(rssLink);
autorimage = new String(autorpic);
Log.d("RssParserLink", "RssItem: " + autor + imageUrl);
}
Log.d("sturmboard", "url: " + autor + pubDate);
// Log.d("sturmboard", "image: " + autorimage);
if (title != null && link != null && pubDate != null) {
RssItem item = new RssItem(title, link, pubDate, autor, autorimage, imageUrl);
items.add(item);
title = null;
link = null;
pubDate = null;
autor = null;
autorimage = null;
imageUrl = null;
}
}
return items;
}
Leider werden die "content:encoded" Links dem Falschem Item zugeteilt (immer dem folgenden ... und sollte das leer sein ... dann auch dem nächsten)..... hat wer eine Idee ... was da falsch ist?
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.