List of usage examples for javax.xml.stream.events StartElement getName
public QName getName();
From source file:Main.java
public static void main(String[] args) throws Exception { XMLInputFactory xif = XMLInputFactory.newInstance(); XMLEventReader xmlr = xif.createXMLEventReader((new FileInputStream(new File("./file.xml")))); boolean inline = false; StringBuffer sb = new StringBuffer(); while (xmlr.hasNext()) { XMLEvent event = xmlr.nextEvent(); if (event.isStartElement()) { StartElement element = (StartElement) event; if ("data".equals(element.getName().toString().trim())) { inline = true;//w w w. j a v a 2 s .c o m } } if (inline) { sb.append(xmlr.peek()); } if (event.isEndElement()) { EndElement element = (EndElement) event; if ("data".equals(element.getName().toString().trim())) { inline = false; System.out.println(sb.toString()); sb.setLength(0); } } } }
From source file:XMLEventReaderDemo.java
public static void main(String[] args) throws Exception { XMLInputFactory factory = XMLInputFactory.newInstance(); Reader fileReader = new FileReader("Source.xml"); XMLEventReader reader = factory.createXMLEventReader(fileReader); while (reader.hasNext()) { XMLEvent event = reader.nextEvent(); if (event.isStartElement()) { StartElement element = (StartElement) event; System.out.println("Start Element: " + element.getName()); Iterator iterator = element.getAttributes(); while (iterator.hasNext()) { Attribute attribute = (Attribute) iterator.next(); QName name = attribute.getName(); String value = attribute.getValue(); System.out.println("Attribute name/value: " + name + "/" + value); }/* www . j a v a 2 s. c o m*/ } if (event.isEndElement()) { EndElement element = (EndElement) event; System.out.println("End element:" + element.getName()); } if (event.isCharacters()) { Characters characters = (Characters) event; System.out.println("Text: " + characters.getData()); } } }
From source file:Main.java
public static String getLocalName(StartElement element) { return element.getName().getLocalPart(); }
From source file:Main.java
private static boolean checkNameAndNamespace(XMLEvent event, String tagName, String namespace) { if (event.isStartElement()) { StartElement element = (StartElement) event; QName name = element.getName(); return tagName.equalsIgnoreCase(name.getLocalPart()) && namespace.equalsIgnoreCase(name.getNamespaceURI()); } else if (event.isEndElement()) { EndElement element = (EndElement) event; QName name = element.getName(); return tagName.equalsIgnoreCase(name.getLocalPart()) && namespace.equalsIgnoreCase(name.getNamespaceURI()); }//from w w w . j a va 2 s .c om return false; }
From source file:Main.java
/** * Returns the name of the root element of an XML message. * /* www . j ava 2 s . co m*/ * @param xml XML message * @return the name of the root element * @exception Exception if an error occurs */ public static String getRootElementName(byte[] xml) throws Exception { ByteArrayInputStream is = new ByteArrayInputStream(xml); XMLEventReader reader = inputFactory.createXMLEventReader(is); while (reader.hasNext()) { XMLEvent event = (XMLEvent) reader.next(); if (event.isStartElement()) { StartElement startElement = event.asStartElement(); return startElement.getName().getLocalPart(); } } reader.close(); return ""; }
From source file:Main.java
/** * Reads the events from the provided event stream until either a start or * end tag is encountered. In the former case, the start tag will be * returned if it matches the specified QName, but if it doesn't match, an * end tag is encountered, or the stream ends, <code>null</code> will be * returned. After returning, the stream will be positioned just before the * start element. The start element will not be consumed by this method. * /*from ww w.jav a2s. c om*/ * @param reader The event stream from which to read. * @param name The name of the element to read, or <code>null</code> to * read any start tag. * @return The StartElement read from the stream, or <code>null</code> if * the encountered start tag didn't match the specified QName, an * end tag was found first, or the stream ended before a start * element was found. * @throws XMLStreamException If an error occurs reading the stream. */ public static final StartElement nextElement(XMLEventReader reader, QName name) throws XMLStreamException { while (reader.hasNext()) { XMLEvent nextEvent = reader.peek(); if (nextEvent.isStartElement()) { StartElement start = nextEvent.asStartElement(); if (name == null || start.getName().equals(name)) { return start; } else { break; } } else if (nextEvent.isEndElement()) { break; } else { // consume the event. reader.nextEvent(); } } return null; }
From source file:Main.java
/** * Utility method that throws an exception if the provided reader is not * positioned before a StartElement event with the specified tag name. * //from w w w .ja v a2 s. co m * @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); } }
From source file:Main.java
/** * /* www .j a v a2 s . co m*/ * @param is * @param os * @param elementNames * @throws XMLStreamException * @throws FactoryConfigurationError * @throws UnsupportedEncodingException */ public static void stripElements(final InputStream is, final OutputStream os, final Collection<String> elementNames) throws XMLStreamException, UnsupportedEncodingException, FactoryConfigurationError { final XMLEventReader xmlEventReader = XMLInputFactory.newInstance() .createXMLEventReader(new InputStreamReader(is, Charset.defaultCharset().name())); final XMLEventWriter xmlEventWriter = XMLOutputFactory.newInstance().createXMLEventWriter(os); String elementName = null; 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: { final StartElement startElement = event.asStartElement(); final QName name = startElement.getName(); if (elementNames.contains(name.getLocalPart())) { elementName = name.getLocalPart(); } if (elementName == null) { xmlEventWriter.add(event); } break; } case XMLStreamConstants.END_ELEMENT: { final EndElement endElement = event.asEndElement(); final QName name = endElement.getName(); if (elementName == null) { xmlEventWriter.add(event); } else if (elementName.equals(name.getLocalPart())) { elementName = null; } break; } default: { if (elementName == null) { xmlEventWriter.add(event); } } } } xmlEventWriter.flush(); }
From source file:Main.java
private static void writeAsEncodedUnicode(StartElement element, Writer writer, boolean isEmpty) throws XMLStreamException { try {//from w w w. j a va2 s . c o m // Write start tag. writer.write('<'); QName name = element.getName(); String prefix = name.getPrefix(); if (prefix != null && prefix.length() > 0) { writer.write(prefix); writer.write(':'); } writer.write(name.getLocalPart()); // Write namespace declarations. Iterator nsIter = element.getNamespaces(); while (nsIter.hasNext()) { Namespace ns = (Namespace) nsIter.next(); writer.write(' '); ns.writeAsEncodedUnicode(writer); } // Write attributes Iterator attrIter = element.getAttributes(); while (attrIter.hasNext()) { Attribute attr = (Attribute) attrIter.next(); writer.write(' '); attr.writeAsEncodedUnicode(writer); } if (isEmpty) writer.write('/'); writer.write('>'); } catch (IOException ioe) { throw new XMLStreamException(ioe); } }
From source file:com.predic8.membrane.core.interceptor.rest.XML2HTTP.java
private static String slurpCharacterData(XMLEventReader parser, StartElement sevent) throws XMLStreamException, XML2HTTPException { String name = sevent.getName().getLocalPart(); StringBuilder value = new StringBuilder(); while (parser.hasNext()) { XMLEvent event = parser.nextEvent(); if (event.isCharacters()) { value.append(event.asCharacters().getData()); } else if (event.isEndElement()) { break; } else {/*from ww w.ja va 2 s. c o m*/ throw new XML2HTTPException("XML-HTTP doc <" + name + "> element contains non-character data."); } } return value.toString(); }