У меня есть следующий канал по этой ссылке: http://divination-rsps.com/forums/index.php? / rss / 2-updates.xml / & member_id = 276 & key = 589faebff96def4fbbced7ebe6b02aaf
И я хочу получить последнюю версию сообщения, однако он подхватывает это, когда мне это нужно, игнорируйте это:
<channel>
<title>Updates</title>
<link>
<![CDATA[
http://divination-rsps.com/forums/index.php?/rss/2-updates.xml/&member_id=276&key=589faebff96def4fbbced7ebe6b02aaf
]]>
</link>
<description>updates</description>
<language>en</language>
Вот код для синтаксического анализатора:
public RssFeed readFeed() {
RssFeed feed = null;
try {
boolean isFeedHeader = true;
// Set header values intial to the empty string
String description = "";
String title = "";
String link = "";
String language = "";
String copyright = "";
String author = "";
String pubdate = "";
String guid = "";
// First create a new XMLInputFactory
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
// Setup a new eventReader
InputStream in = read();
XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
// read the XML document
while (eventReader.hasNext()) {
XMLEvent event = eventReader.nextEvent();
if (event.isStartElement()) {
String localPart = event.asStartElement().getName()
.getLocalPart();
switch (localPart) {
case ITEM:
if (isFeedHeader) {
isFeedHeader = false;
feed = new RssFeed(title, link, "", "",
"", "");
eventReader.next();
}
event = eventReader.nextEvent();
break;
case TITLE:
title = getCharacterData(event, eventReader);
break;
case DESCRIPTION:
description = getCharacterData(event, eventReader);
break;
case LINK:
link = getCharacterData(event, eventReader);
break;
case GUID:
guid = getCharacterData(event, eventReader);
break;
case LANGUAGE:
language = getCharacterData(event, eventReader);
break;
case AUTHOR:
author = getCharacterData(event, eventReader);
break;
case PUB_DATE:
pubdate = getCharacterData(event, eventReader);
break;
case COPYRIGHT:
copyright = getCharacterData(event, eventReader);
break;
}
} else if (event.isEndElement()) {
if (event.asEndElement().getName().getLocalPart() == (ITEM)) {
FeedMessage message = new FeedMessage();
message.setAuthor(author);
message.setDescription(description);
message.setGuid(guid);
message.setLink(link);
message.setTitle(title);
message.setDate(pubdate);
feed.getMessages().add(message);
event = eventReader.nextEvent();
continue;
}
}
}
} catch (XMLStreamException e) {
throw new RuntimeException(e);
}
return feed;
}
Кто-нибудь знает способ обойти эту проблему, или, возможно, способ проверить это в тегах элементов в первую очередь