List of usage examples for javax.xml.stream.events XMLEvent isCharacters
public boolean isCharacters();
From source file:com.hazelcast.simulator.probes.probes.ProbesResultXmlReader.java
private static Result parseHdrLatencyProbeResult(XMLEventReader reader) throws XMLStreamException { String encodedData = null;/*from ww w.j a va 2s.c om*/ while (reader.hasNext()) { XMLEvent xmlEvent = reader.nextEvent(); if (xmlEvent.isCharacters()) { encodedData = xmlEvent.asCharacters().getData(); } else if (xmlEvent.isEndElement()) { EndElement endElement = xmlEvent.asEndElement(); if (!HDR_LATENCY_DATA.matches(endElement.getName().getLocalPart()) || encodedData == null) { throw new XMLStreamException("Unexpected end element " + endElement.getName()); } try { byte[] bytes = Base64.decodeBase64(encodedData); Histogram histogram = Histogram.decodeFromCompressedByteBuffer(ByteBuffer.wrap(bytes), 0); return new HdrLatencyDistributionResult(histogram); } catch (DataFormatException e) { throw new RuntimeException(e); } } } throw new XMLStreamException("Unexpected end of stream"); }
From source file:Main.java
private static String printEvents(XMLEvent start, XMLEventReader xml, int indent) throws XMLStreamException { String ret = "\n"; for (int i = 0; i < indent; i++) { ret += " "; }// w w w . ja v a 2 s . c o m ret += start + "\n"; XMLEvent next = null; // Keep processing events... while (xml.hasNext()) { next = xml.nextEvent(); // Delegate start tags to a new indentation level if (next.isStartElement()) { printEvents(next, xml, indent + 4); } else if (next.isEndElement()) { // We've found our end element. Add it and be done. for (int i = 0; i < indent; i++) { ret += " "; } ret += next + "\n"; return ret; } else if (next.isCharacters() && next.asCharacters().isWhiteSpace()) { // Skip whitespace continue; } else { // Print the contents of this tag for (int i = 0; i < indent + 4; i++) { ret += " "; } ret += next + "\n"; } } // Oh wow, we ran out of XML. Uh, return then? return ret; }
From source file:de.dfki.km.leech.parser.wikipedia.WikipediaDumpParser.java
/** * Reads all next character events from an xmlEventReader and concatenate their data into one String * /* ww w .j av a 2 s. c o m*/ * @param xmlEventReader the xmlEventReader to get the events * * @return the data of the character events, concatenated into one String * * @throws XMLStreamException */ static protected String readNextCharEventsText(XMLEventReader xmlEventReader) throws XMLStreamException { StringBuilder strbText = new StringBuilder(""); while (xmlEventReader.hasNext()) { XMLEvent nextEvent = xmlEventReader.peek(); if (!nextEvent.isCharacters()) break; nextEvent = xmlEventReader.nextEvent(); strbText.append(nextEvent.asCharacters().getData()); } return strbText.toString(); }
From source file:com.msopentech.odatajclient.testservice.utils.XMLUtilities.java
public static InputStream getAtomPropertyValue(final InputStream is, final String[] path) throws Exception { final XmlElement props = getAtomElement(is, PROPERTIES, 2, 3); final XMLEventReader propsReader = props.getContentReader(); // search for property start element getPropertyStartTag(propsReader, ArrayUtils.subarray(path, 0, path.length - 1)); final InputStream res; XMLEvent event = propsReader.nextEvent(); // expected text node if (event.isCharacters()) { res = new ByteArrayInputStream(event.asCharacters().getData().getBytes()); } else if (event.isEndElement()) { throw new NotFoundException(); } else {//ww w. j a v a 2 s . c o m throw new Exception("The method or operation is not implemented."); } return res; }
From source file:org.eclipse.swordfish.core.configuration.xml.XmlToPropertiesTransformerImpl.java
public void loadConfiguration(URL path) { Assert.notNull(path);// ww w . j ava 2 s. c om InputStream inputStream = null; try { inputStream = path.openStream(); XMLInputFactory inputFactory = XMLInputFactory.newInstance(); LinkedList<String> currentElements = new LinkedList<String>(); XMLEventReader eventReader = inputFactory.createXMLEventReader(inputStream); Map<String, List<String>> props = new HashMap<String, List<String>>(); // Read the XML document while (eventReader.hasNext()) { XMLEvent event = eventReader.nextEvent(); if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) { putElement(props, getQualifiedName(currentElements), event.asCharacters().getData()); } else if (event.isStartElement()) { currentElements.add(event.asStartElement().getName().getLocalPart()); for (Iterator attrIt = event.asStartElement().getAttributes(); attrIt.hasNext();) { Attribute attribute = (Attribute) attrIt.next(); putElement(props, getQualifiedName(currentElements) + "[@" + attribute.getName() + "]", attribute.getValue()); } } else if (event.isAttribute()) { } else if (event.isEndElement()) { String lastElem = event.asEndElement().getName().getLocalPart(); if (!currentElements.getLast().equals(lastElem)) { throw new UnsupportedOperationException(lastElem + "," + currentElements.getLast()); } currentElements.removeLast(); } } properties = flattenProperties(props); } catch (Exception ex) { throw new SwordfishException(ex); } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException ex) { } } } }
From source file:Main.java
public static String getXMLContent(XMLEventReader reader, StartElement element, boolean decodeCharacters) throws XMLStreamException { String rootElementName = getLocalName(element); StringWriter buffer = new StringWriter(1024); StartElement pendingElement = null; String pendingElementName = null; while (reader.hasNext()) { XMLEvent event = reader.nextEvent(); if (pendingElement != null) { boolean skip = false; if (event.isEndElement() && pendingElementName.equals(getLocalName(event.asEndElement()))) { writeAsEncodedUnicode(pendingElement, buffer, true); // empty tag skip = true; // skip this end tag } else { writeAsEncodedUnicode(pendingElement, buffer, false); }//from ww w .j av a2s .c o m pendingElement = null; pendingElementName = null; if (skip) continue; } if (event.isEndElement()) { EndElement endElement = event.asEndElement(); String name = getLocalName(endElement); if (rootElementName.equals(name)) return buffer.toString(); writeAsEncodedUnicode(endElement, buffer); } else if (event.isStartElement()) { pendingElement = event.asStartElement(); pendingElementName = getLocalName(pendingElement); } else if (event.isCharacters() && decodeCharacters) { buffer.append(event.asCharacters().getData()); } else { event.writeAsEncodedUnicode(buffer); } } throw new XMLStreamException(format("Missing closing tag for '" + rootElementName + "' element", element)); }
From source file:com.streamsets.pipeline.lib.xml.StreamingXmlParser.java
@SuppressWarnings("unchecked") Field parse(XMLEventReader reader, StartElement startE) throws XMLStreamException, ObjectLengthException { Map<String, Field> map = this.useFieldAttributesInsteadOfFields ? new LinkedHashMap<>() : toField(startE); Map<String, Field> startEMap = map; Map<String, Object> contents = new LinkedHashMap<>(); boolean maybeText = true; while (hasNext(reader) && !peek(reader).isEndElement()) { XMLEvent next = read(reader); if (next.isCharacters()) { // If this set of characters is all whitespace, ignore. if (next.asCharacters().isWhiteSpace()) { continue; } else if (peek(reader).isEndElement() && maybeText) { contents.put(VALUE_KEY, Field.create(((Characters) next).getData())); } else if (peek(reader).isStartElement()) { StartElement subStartE = (StartElement) read(reader); Field subField = parse(reader, subStartE); addContent(contents, getName(subStartE), subField); if (hasNext(reader) && peek(reader).isCharacters()) { read(reader);/*from ww w . j a v a2 s . co m*/ } } else if (maybeText) { throw new XMLStreamException(Utils .format("Unexpected XMLEvent '{}', it should be START_ELEMENT or END_ELEMENT", next), next.getLocation()); } } else if (next.isStartElement()) { String name = getName((StartElement) next); Field field = parse(reader, (StartElement) next); addContent(contents, name, field); } else { throw new XMLStreamException( Utils.format("Unexpected XMLEvent '{}', it should be START_ELEMENT or CHARACTERS", next), next.getLocation()); } maybeText = false; } if (hasNext(reader)) { EndElement endE = (EndElement) read(reader); if (!endE.getName().equals(startE.getName())) { throw new XMLStreamException(Utils.format("Unexpected EndElement '{}', it should be '{}'", endE.getName().getLocalPart(), startE.getName().getLocalPart()), endE.getLocation()); } for (Map.Entry<String, Object> entry : contents.entrySet()) { if (entry.getValue() instanceof Field) { startEMap.put(entry.getKey(), (Field) entry.getValue()); } else { startEMap.put(entry.getKey(), Field.create((List<Field>) entry.getValue())); } } } final Field field = Field.create(startEMap); if (this.useFieldAttributesInsteadOfFields) { Iterator attrs = startE.getAttributes(); while (attrs.hasNext()) { Attribute attr = (Attribute) attrs.next(); field.setAttribute(getName(XMLATTR_ATTRIBUTE_PREFIX, attr), attr.getValue()); } Iterator nss = startE.getNamespaces(); while (nss.hasNext()) { Namespace ns = (Namespace) nss.next(); field.setAttribute(getName(null, ns), ns.getNamespaceURI()); } } lastParsedFieldXpathPrefix = getXpathPrefix(); return field; }
From source file:edu.jhu.hlt.concrete.ingesters.bolt.BoltForumPostIngester.java
private int handleQuote(final XMLEventReader rdr) throws XMLStreamException { // For quotes, there will be character contents - skip for now... XMLEvent quoteContent = rdr.nextEvent(); if (!quoteContent.isCharacters()) throw new RuntimeException("Characters did not follow quote."); // Skip end of quote. XMLEvent next = rdr.nextEvent(); // Exit loop only when next end quote is hit. boolean hitEndQuoteElement = false; while (!next.isEndElement() && !hitEndQuoteElement) { // Move to next element. next = rdr.nextEvent();//from ww w. j ava2s .c om // If next element is an end element, // see if it's an end quote. // If so, exit the loop. if (next.isEndElement()) hitEndQuoteElement = next.asEndElement().getName().getLocalPart().equals("quote"); } return next.getLocation().getCharacterOffset(); }
From source file:edu.jhu.hlt.concrete.ingesters.bolt.BoltForumPostIngester.java
private int handleLink(final XMLEventReader rdr) throws XMLStreamException { // Links have a start element, characters, and end element. // Alternatively, they have a start and end element. XMLEvent linkContent = rdr.nextEvent(); if (linkContent.isEndElement()) return linkContent.getLocation().getCharacterOffset(); else if (linkContent.isCharacters()) // Skip end of link. return rdr.nextEvent().getLocation().getCharacterOffset(); else/*from w w w. j a va2s.c om*/ throw new RuntimeException("Characters did not follow link."); }
From source file:ca.uhn.fhir.jpa.dao.BaseHapiFhirDao.java
private static String parseNarrativeTextIntoWords(IBaseResource theResource) { StringBuilder b = new StringBuilder(); if (theResource instanceof IResource) { IResource resource = (IResource) theResource; List<XMLEvent> xmlEvents = resource.getText().getDiv().getValue(); if (xmlEvents != null) { for (XMLEvent next : xmlEvents) { if (next.isCharacters()) { Characters characters = next.asCharacters(); b.append(characters.getData()).append(" "); }//from w w w .java 2s. c o m } } } else if (theResource instanceof IDomainResource) { IDomainResource resource = (IDomainResource) theResource; try { String divAsString = resource.getText().getDivAsString(); XhtmlDt xhtml = new XhtmlDt(divAsString); List<XMLEvent> xmlEvents = xhtml.getValue(); if (xmlEvents != null) { for (XMLEvent next : xmlEvents) { if (next.isCharacters()) { Characters characters = next.asCharacters(); b.append(characters.getData()).append(" "); } } } } catch (Exception e) { throw new DataFormatException("Unable to convert DIV to string", e); } } return b.toString(); }