hey - kann mir mal bitte einer sagen, wie ich eine while-schleife mit hashNext() auf 3 durchgänge beschränken kann - hier der code:
habe schon eine neue variable count eingefügt die dann in der while-schleiße count++ und im while-schleifen kopf dann folgendes abgefragt while (eventReader.hasNext() && count < 3)
aber das führte dazu das gar nicht mehr ausgegeben wird
wäre super wenn mir da jemand helfen könnte
Code:
public Feed readFeed() {
Feed 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()) {
if (event.asStartElement().getName().getLocalPart() == (ITEM)) {
if (isFeedHeader) {
isFeedHeader = false;
feed = new Feed(title, link, description, language,
copyright, pubdate);
}
event = eventReader.nextEvent();
continue;
}
if (event.asStartElement().getName().getLocalPart() == (TITLE)) {
event = eventReader.nextEvent();
title = event.asCharacters().getData();
continue;
}
if (event.asStartElement().getName().getLocalPart() == (DESCRIPTION)) {
event = eventReader.nextEvent();
description = event.asCharacters().getData();
continue;
}
if (event.asStartElement().getName().getLocalPart() == (LINK)) {
event = eventReader.nextEvent();
link = event.asCharacters().getData();
continue;
}
if (event.asStartElement().getName().getLocalPart() == (GUID)) {
event = eventReader.nextEvent();
guid = event.asCharacters().getData();
continue;
}
if (event.asStartElement().getName().getLocalPart() == (LANGUAGE)) {
event = eventReader.nextEvent();
language = event.asCharacters().getData();
continue;
}
if (event.asStartElement().getName().getLocalPart() == (AUTHOR)) {
event = eventReader.nextEvent();
author = event.asCharacters().getData();
continue;
}
if (event.asStartElement().getName().getLocalPart() == (PUB_DATE)) {
event = eventReader.nextEvent();
pubdate = event.asCharacters().getData();
continue;
}
if (event.asStartElement().getName().getLocalPart() == (COPYRIGHT)) {
event = eventReader.nextEvent();
copyright = event.asCharacters().getData();
continue;
}
} 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);
feed.getMessages().add(message);
event = eventReader.nextEvent();
continue;
}
}
}
} catch (XMLStreamException e) {
throw new RuntimeException(e);
}
return feed;
}
habe schon eine neue variable count eingefügt die dann in der while-schleiße count++ und im while-schleifen kopf dann folgendes abgefragt while (eventReader.hasNext() && count < 3)
aber das führte dazu das gar nicht mehr ausgegeben wird
wäre super wenn mir da jemand helfen könnte