@Override public String getText() { if (this.event.isCharacters()) { return this.event.asCharacters().getData(); } else if (this.event.getEventType() == XMLEvent.COMMENT) { return ((Comment) this.event).getText(); } else { throw new IllegalStateException(); } }
@Override public String getElementText() throws XMLStreamException { checkIfClosed(); if (this.currentEvent == null || !this.currentEvent.isStartElement()) { throw new XMLStreamException("Not at START_ELEMENT: " + this.currentEvent); } StringBuilder builder = new StringBuilder(); while (true) { XMLEvent event = nextEvent(); if (event.isEndElement()) { break; } else if (!event.isCharacters()) { throw new XMLStreamException("Unexpected non-text event: " + event); } Characters characters = event.asCharacters(); if (!characters.isIgnorableWhiteSpace()) { builder.append(event.asCharacters().getData()); } } return builder.toString(); }
@Override @Nullable public XMLEvent nextTag() throws XMLStreamException { checkIfClosed(); while (true) { XMLEvent event = nextEvent(); switch (event.getEventType()) { case XMLStreamConstants.START_ELEMENT: case XMLStreamConstants.END_ELEMENT: return event; case XMLStreamConstants.END_DOCUMENT: return null; case XMLStreamConstants.SPACE: case XMLStreamConstants.COMMENT: case XMLStreamConstants.PROCESSING_INSTRUCTION: continue; case XMLStreamConstants.CDATA: case XMLStreamConstants.CHARACTERS: if (!event.asCharacters().isWhiteSpace()) { throw new XMLStreamException( "Non-ignorable whitespace CDATA or CHARACTERS event: " + event); } break; default: throw new XMLStreamException("Expected START_ELEMENT or END_ELEMENT: " + event); } } }
/** * Returns the text contents of the current element being parsed. * * @return The text contents of the current element being parsed. * @throws XMLStreamException */ public String readText() throws XMLStreamException { if (isInsideResponseHeader()) { return getHeader(currentHeader); } if (currentEvent.isAttribute()) { Attribute attribute = (Attribute)currentEvent; return attribute.getValue(); } StringBuilder sb = new StringBuilder(); while (true) { XMLEvent event = eventReader.peek(); if (event.getEventType() == XMLStreamConstants.CHARACTERS) { eventReader.nextEvent(); sb.append(event.asCharacters().getData()); } else if (event.getEventType() == XMLStreamConstants.END_ELEMENT) { return sb.toString(); } else { throw new RuntimeException("Encountered unexpected event: " + event.toString()); } } }
XMLEvent event = reader.nextEvent(); if (event.isStartElement()) { StartElement currentElement = event.asStartElement(); NodeInfo currentNode = new NodeInfo(currentElement); if (parsed.isEmpty()) { NodeInfo grandparentNode = parsed.peek(); if (grandparentNode.getElement(parentElement) == null) { grandparentNode.setElement(parentElement, event.asCharacters());
streamWriter.writeStartDocument(); } else if (event.isStartElement()) { StartElement element = event.asStartElement(); QName elQName = element.getName(); if (elQName.getPrefix().length() > 0 Characters chars = event.asCharacters(); streamWriter.writeCharacters(chars.getData()); } else if (event.isEndElement()) { streamWriter.writeEndElement();
private XMLEvent peek(XMLEventReader reader) throws XMLStreamException { XMLEvent peek = reader.peek(); if (peek.isCharacters() && (peek.asCharacters().isWhiteSpace())) { reader.nextEvent(); return peek(reader); } return peek; }
/** * Handle the next event * @return true if the end of the document has been reached. (ie, we are back at level 0) * @throws SAXException */ private void handleXMLEvent(XMLEvent e) throws SAXException { if (e.isStartDocument()) handler.startDocument(); else if (e.isEndDocument()) handler.endDocument(); else if (e.isStartElement()) emitSE(e.asStartElement()); else if (e.isEndElement()) emitEE(e.asEndElement()); else if (e.isProcessingInstruction()) emitPi((ProcessingInstruction) e); else if (e.isCharacters()) emitChars(e.asCharacters()); else if (e.isAttribute()) emitAttr((Attribute) e); else if (e.isEntityReference()) emitEnt((EntityDeclaration) e); else if (e.isNamespace()) emitNS((Namespace) e); else if (e instanceof Comment) emitComment((Comment) e); else if (e instanceof DTD) emitDTD((DTD) e); else { //System.err.println("Unknown / unhandled event type " + e); //throw new SAXException("Unknown / unhandled event type " + e); } }
/** * Returns the next XML event for the document being parsed. * * @return The next XML event for the document being parsed. * * @throws XMLStreamException */ public XMLEvent nextEvent() throws XMLStreamException { if (attributeIterator != null && attributeIterator.hasNext()) { currentEvent = (XMLEvent)attributeIterator.next(); } else { currentEvent = eventReader.nextEvent(); } if (currentEvent.isStartElement()) { attributeIterator = currentEvent.asStartElement().getAttributes(); } updateContext(currentEvent); if (eventReader.hasNext()) { XMLEvent nextEvent = eventReader.peek(); if (nextEvent != null && nextEvent.isCharacters()) { for (MetadataExpression metadataExpression : metadataExpressions) { if (testExpression(metadataExpression.expression, metadataExpression.targetDepth)) { metadata.put(metadataExpression.key, nextEvent.asCharacters().getData()); } } } } return currentEvent; }
private RelationshipType getRelationshipType(XMLEventReader reader) throws XMLStreamException { if (this.labels) { XMLEvent peek = reader.peek(); if (peek.isCharacters() && !(peek.asCharacters().isWhiteSpace())) { String value = peek.asCharacters().getData(); String el = ":"; String typeRel = value.contains(el) ? value.replace(el, StringUtils.EMPTY) : value; return RelationshipType.withName(typeRel.trim()); } else { reader.nextEvent(); return getRelationshipType(reader); } } return defaultRelType; }
private StartElement getStartElement(final XMLEventReader reader) throws XMLStreamException { while (reader.hasNext()) { final XMLEvent innerEvent = reader.peek(); if (innerEvent.isCharacters() && innerEvent.asCharacters().isWhiteSpace()) { reader.nextEvent(); } else if (innerEvent.isStartElement()) { return innerEvent.asStartElement(); } else if (innerEvent.isEndElement() && inlineQName.equals(innerEvent.asEndElement().getName())) { return null; } } return null; }
@Override public String getText() { if (this.event.isCharacters()) { return this.event.asCharacters().getData(); } else if (this.event.getEventType() == XMLEvent.COMMENT) { return ((Comment) this.event).getText(); } else { throw new IllegalStateException(); } }
private void onXmlEvent(XMLEvent event) { if (event.isStartElement()) { StartElement element = event.asStartElement(); String elementName = element.getName().getLocalPart(); if ("key".equals(elementName)) { currentKey = new StringBuilder(); } } else if (event.isCharacters()) { currentKey.append(event.asCharacters().getData()); } else if (event.isEndElement() && "key".equals(event.asEndElement().getName().getLocalPart())) { definedRulesId.add(currentKey.toString()); } }
@Override @Nullable public XMLEvent nextTag() throws XMLStreamException { checkIfClosed(); while (true) { XMLEvent event = nextEvent(); switch (event.getEventType()) { case XMLStreamConstants.START_ELEMENT: case XMLStreamConstants.END_ELEMENT: return event; case XMLStreamConstants.END_DOCUMENT: return null; case XMLStreamConstants.SPACE: case XMLStreamConstants.COMMENT: case XMLStreamConstants.PROCESSING_INSTRUCTION: continue; case XMLStreamConstants.CDATA: case XMLStreamConstants.CHARACTERS: if (!event.asCharacters().isWhiteSpace()) { throw new XMLStreamException( "Non-ignorable whitespace CDATA or CHARACTERS event: " + event); } break; default: throw new XMLStreamException("Expected START_ELEMENT or END_ELEMENT: " + event); } } }
@Override public String getElementText() throws XMLStreamException { checkIfClosed(); if (this.currentEvent == null || !this.currentEvent.isStartElement()) { throw new XMLStreamException("Not at START_ELEMENT: " + this.currentEvent); } StringBuilder builder = new StringBuilder(); while (true) { XMLEvent event = nextEvent(); if (event.isEndElement()) { break; } else if (!event.isCharacters()) { throw new XMLStreamException("Unexpected non-text event: " + event); } Characters characters = event.asCharacters(); if (!characters.isIgnorableWhiteSpace()) { builder.append(event.asCharacters().getData()); } } return builder.toString(); }
/** * Constructs a DOM4J Text or CDATA section from the provided event stream. * The stream must be positioned before a {@link Characters}event. * * @param reader * The event stream from which to read the Text or CDATA. * * @return The Text or CDATA that was read from the stream. * * @throws XMLStreamException * If an error occured reading events from the stream, or the * stream was not positioned before a {@link Characters}event. */ public CharacterData readCharacters(XMLEventReader reader) throws XMLStreamException { XMLEvent event = reader.peek(); if (event.isCharacters()) { Characters characters = reader.nextEvent().asCharacters(); return createCharacterData(characters); } else { throw new XMLStreamException("Expected Characters event, found: " + event); } }
event = staxEventReader.nextEvent(); } while( !event.isStartElement() ); handleStartDocument(event.asStartElement().getNamespaceContext()); switch (event.getEventType()) { case XMLStreamConstants.START_ELEMENT : handleStartElement(event.asStartElement()); depth++; break; case XMLStreamConstants.CDATA : case XMLStreamConstants.SPACE : handleCharacters(event.asCharacters()); break; event=staxEventReader.nextEvent();
private StartElement getStartElement(final XMLEventReader reader) throws XMLStreamException { while (reader.hasNext()) { final XMLEvent innerEvent = reader.peek(); if (innerEvent.isCharacters() && innerEvent.asCharacters().isWhiteSpace()) { reader.nextEvent(); } else if (innerEvent.isStartElement()) { return innerEvent.asStartElement(); } else if (innerEvent.isEndElement() && inlineQName.equals(innerEvent.asEndElement().getName())) { return null; } } return null; }