code: public UnprotectedStringBuffer readInnerText() throws XMLException, IOException {
  		if (!Type.START_ELEMENT.equals(event.type))
  throw new IOException("Invalid call of readInnerText: it must be called on a start element, current event type is: " + event.type);
  		if (event.isClosed) return new UnprotectedStringBuffer();
  		UnprotectedStringBuffer elementName = event.text;
  		UnprotectedStringBuffer innerText = new UnprotectedStringBuffer();
  		do {
  			try { next(); }
  			catch (EOFException e) {
  				throw new XMLException(getPosition(), "Unexpected end", "readInnerText(" + elementName.toString() + ")");
  			}
  			if (Type.COMMENT.equals(event.type)) continue;
  			if (Type.TEXT.equals(event.type)) {
  				innerText.append(event.text);
  				continue;
  			}
  			if (Type.START_ELEMENT.equals(event.type)) {
  				closeElement();
  				continue;
  			}
  			if (Type.END_ELEMENT.equals(event.type)) {
  				if (!event.text.equals(elementName))
  					throw new XMLException(getPosition(), "Unexpected end element", event.text.asString());
  				return innerText;
  			}
  		} while (true);
  	}
docs: Read inner text and close element.