List of usage examples for javax.xml.stream.events XMLEvent asCharacters
public Characters asCharacters();
From source file:Main.java
private static String flattenXmlRecord(final String xmlRecord) throws XMLStreamException { StringBuilder flatXmlRecord = new StringBuilder(); XMLEventReader eventReader = inFactory.createXMLEventReader(new StringReader(xmlRecord)); while (eventReader.hasNext()) { XMLEvent event = eventReader.nextEvent(); if (event.getEventType() != XMLEvent.START_ELEMENT) { continue; }// w w w . ja v a 2 s. c o m String elementName = event.asStartElement().getName().getLocalPart(); event = eventReader.nextEvent(); if (event.getEventType() != XMLEvent.CHARACTERS) { continue; } if (event.asCharacters().getData().trim().isEmpty()) { continue; } flatXmlRecord.append(elementName + ", " + event.asCharacters().getData() + "\n"); } return flatXmlRecord.toString(); }
From source file:com.hazelcast.simulator.probes.probes.ProbesResultXmlReader.java
private static String parseCharsAndEndCurrentElement(XMLEventReader reader) throws XMLStreamException { XMLEvent xmlEvent = reader.nextEvent(); if (!xmlEvent.isCharacters()) { throw new XMLStreamException("Unexpected event " + xmlEvent); }//from w w w.ja va 2s . c o m String data = xmlEvent.asCharacters().getData(); while (reader.hasNext()) { xmlEvent = reader.nextEvent(); if (xmlEvent.isEndElement()) { return data; } } throw new XMLStreamException("Unexpected end of the document"); }
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 += " "; }/*from www . j av a 2s . com*/ 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:Main.java
/** * Compares two {@link XMLEvent} instances. This method delegates actual * matching to the appropriate overloaded method. * /*from w ww .j ava 2 s .co m*/ * @param a * The first event. * @param b * The second event. * @return <code>true</code> if the events match, <code>false</code> * otherwise. */ public static boolean eventsMatch(XMLEvent a, XMLEvent b) { if (a == b) { return true; } else if (a == null || b == null) { return false; } else if (a.getEventType() == b.getEventType()) { switch (a.getEventType()) { case XMLEvent.START_ELEMENT: return eventsMatch(a.asStartElement(), b.asStartElement()); case XMLEvent.END_ELEMENT: return eventsMatch(a.asEndElement(), b.asEndElement()); case XMLEvent.CDATA: case XMLEvent.SPACE: case XMLEvent.CHARACTERS: return eventsMatch(a.asCharacters(), b.asCharacters()); case XMLEvent.COMMENT: return eventsMatch((Comment) a, (Comment) b); case XMLEvent.ENTITY_REFERENCE: return eventsMatch((EntityReference) a, (EntityReference) b); case XMLEvent.ATTRIBUTE: return eventsMatch((Attribute) a, (Attribute) b); case XMLEvent.NAMESPACE: return eventsMatch((Namespace) a, (Namespace) b); case XMLEvent.START_DOCUMENT: return eventsMatch((StartDocument) a, (StartDocument) b); case XMLEvent.END_DOCUMENT: return eventsMatch((EndDocument) a, (EndDocument) b); case XMLEvent.PROCESSING_INSTRUCTION: return eventsMatch((ProcessingInstruction) a, (ProcessingInstruction) b); case XMLEvent.DTD: return eventsMatch((DTD) a, (DTD) b); case XMLEvent.ENTITY_DECLARATION: return eventsMatch((EntityDeclaration) a, (EntityDeclaration) b); case XMLEvent.NOTATION_DECLARATION: return eventsMatch((NotationDeclaration) a, (NotationDeclaration) b); } } return false; }
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 * //from ww w . j a v 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:Main.java
/** * //w w w . ja v a 2 s . co m * @param elementName * @param is * @param onlyValues * @return Collection * @throws XMLStreamException * @throws UnsupportedEncodingException */ public static Collection<String> getElements(final String elementName, final InputStream is, final boolean onlyValues) throws XMLStreamException, UnsupportedEncodingException { final Collection<String> elements = new ArrayList<>(); final ByteArrayOutputStream os = new ByteArrayOutputStream(); final XMLEventReader reader = XMLInputFactory.newInstance() .createXMLEventReader(new InputStreamReader(is, Charset.defaultCharset().name())); final XMLEventWriter writer = XMLOutputFactory.newInstance() .createXMLEventWriter(new OutputStreamWriter(os, Charset.defaultCharset().name())); boolean read = false; String characters = null; while (reader.peek() != null) { final XMLEvent event = (XMLEvent) reader.next(); switch (event.getEventType()) { case XMLStreamConstants.START_DOCUMENT: case XMLStreamConstants.END_DOCUMENT: { // Ignore. break; } case XMLStreamConstants.START_ELEMENT: { read = read || elementName.equals(event.asStartElement().getName().getLocalPart()); if (read && !onlyValues) { writer.add(event); } break; } case XMLStreamConstants.ATTRIBUTE: { if (read && !onlyValues) { writer.add(event); } break; } case XMLStreamConstants.CHARACTERS: { if (read && !onlyValues) { writer.add(event); } characters = event.asCharacters().getData(); break; } case XMLStreamConstants.END_ELEMENT: { if (read && !onlyValues) { writer.add(event); } if (elementName.equals(event.asEndElement().getName().getLocalPart())) { writer.flush(); if (characters != null) { elements.add(characters); } os.reset(); read = false; } break; } default: { // Ignore break; } } } return elements; }
From source file:Main.java
/** * /*from w w w . j a v a2 s . c o m*/ * @param elementName * @param attributeValue * @param is * @return Collection * @throws XMLStreamException * @throws FactoryConfigurationError * @throws UnsupportedEncodingException */ public static Collection<String> getElementValues(final String elementName, final String attributeValue, final InputStream is) throws XMLStreamException, UnsupportedEncodingException, FactoryConfigurationError { final Collection<String> elementValues = new ArrayList<>(); final XMLEventReader xmlEventReader = XMLInputFactory.newInstance() .createXMLEventReader(new InputStreamReader(is, Charset.defaultCharset().name())); final StringBuffer characters = new StringBuffer(); boolean read = false; while (xmlEventReader.peek() != null) { final XMLEvent event = (XMLEvent) xmlEventReader.next(); switch (event.getEventType()) { case XMLStreamConstants.START_DOCUMENT: case XMLStreamConstants.END_DOCUMENT: { // Ignore. break; } case XMLStreamConstants.START_ELEMENT: { read = elementName.equals(event.asStartElement().getName().getLocalPart()); if (read && attributeValue != null) { read = false; for (Iterator<Attribute> iterator = event.asStartElement().getAttributes(); iterator .hasNext();) { Attribute attribute = iterator.next(); if (attribute.getValue().equals(attributeValue)) { read = true; break; } } } break; } case XMLStreamConstants.CHARACTERS: { if (read) { characters.append(event.asCharacters().getData()); } break; } case XMLStreamConstants.END_ELEMENT: { if (read) { elementValues.add(characters.toString()); characters.setLength(0); } read = false; break; } default: { // Ignore break; } } } return elementValues; }
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 {/*from ww w. jav a2 s . co 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 ava2s . c o m*/ 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:corpus.sinhala.crawler.blog.rss.RSSFeedParser.java
private String getCharacterData(XMLEvent event, XMLEventReader eventReader) throws XMLStreamException { String result = ""; event = eventReader.nextEvent();//from ww w . j av a 2 s . c o m if (event instanceof Characters) { result = event.asCharacters().getData(); } return result; }