stop stax parser from executing

445 Views Asked by At

I am looking for a way to stop parser once i get my tag content. How can i do this? Also how i can know now i got a hit on my tag i am searching.

public class XmlParser {

  public String getValue(final String xml, final String tag) throws XMLStreamException {

    String tagContent = null;

    final XMLInputFactory factory = XMLInputFactory.newInstance();
    final XMLStreamReader reader = factory.createXMLStreamReader(new StringReader(xml));

    while (reader.hasNext()) {
      final int event = reader.next();
      switch (event) {
        case XMLStreamConstants.START_ELEMENT:
          break;
        case XMLStreamConstants.CHARACTERS:
          tagContent = reader.getText().trim();
          break;
        case XMLStreamConstants.END_ELEMENT:
          break;
      }
    }
    return tagContent;
  }
}
1

There are 1 best solutions below

2
On BEST ANSWER
boolean finished = false;
while(!finished && reader.hasNext()) {
  final int event = reader.next();
  //set finished = true if you hit an event that means you want to stop parsing
}
//don't forget to close the reader and the I/O streams