Example usage for javax.xml.stream.events StartElement getName

List of usage examples for javax.xml.stream.events StartElement getName

Introduction

In this page you can find the example usage for javax.xml.stream.events StartElement getName.

Prototype

public QName getName();

Source Link

Document

Get the name of this event

Usage

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();
}