Java tutorial
//package com.java2s; import javax.xml.namespace.QName; import javax.xml.stream.XMLEventReader; import javax.xml.stream.XMLStreamException; import javax.xml.stream.events.StartElement; import javax.xml.stream.events.XMLEvent; public class Main { /** * Reads the text content of an element. The reader should be positioned in * front of a StartElement event, and will be read up to and including the * end element tag. * * @param reader The event stream from which to read the element text. * @param elemName The optional name of the element being read. If this * paramter is non- <code>null</code> then an exception will * be thrown if the element read doesn't have the same name. * @return The text read from the element. * @throws XMLStreamException If an error occurs reading the stream, or if * the read element doesn't match the provided QName. */ public static final String readTextElement(XMLEventReader reader, QName elemName) throws XMLStreamException { if (elemName != null) { requireStartElement(reader, elemName); } // read text String text = reader.getElementText(); // consume the end tag reader.nextEvent(); return text; } /** * Utility method that throws an exception if the provided reader is not * positioned before a StartElement event with the specified tag name. * * @param reader The reader to test. * @param qname The required name of the start-tag. If <code>null</code>, * any start tag is accepted. * @throws XMLStreamException If an error occurs reading from the stream. */ public static final void requireStartElement(XMLEventReader reader, QName qname) throws XMLStreamException { if (reader.hasNext()) { XMLEvent nextEvent = reader.peek(); if (nextEvent.isStartElement()) { if (qname != null) { StartElement start = nextEvent.asStartElement(); QName name = start.getName(); if (!name.equals(qname)) { throw new XMLStreamException( "Encountered unexpected element; expected " + qname + ", but found " + name); } } } else { throw new XMLStreamException("Encountered unexpected event; expected " + qname + " start-tag, but found event " + nextEvent); } } else { throw new XMLStreamException("Encountered unexpected end of stream; expected element " + qname); } } }