List of usage examples for javax.xml.stream.events XMLEvent isEndElement
public boolean isEndElement();
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;/*from w ww .j a v a 2s . com*/ } } 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); }//from ww w . jav a 2s.c om } 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:org.eclipse.swordfish.core.configuration.xml.SaxParsingPrototype.java
/** * @param args//from w w w. j a v a2 s . c o m */ public static void main(String[] args) throws Exception { XMLInputFactory inputFactory = XMLInputFactory.newInstance(); LinkedList<String> currentElements = new LinkedList<String>(); InputStream in = SaxParsingPrototype.class.getResource("ComplexPidXmlProperties.xml").openStream(); XMLEventReader eventReader = inputFactory.createXMLEventReader(in); 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()) { System.out.println(event.asStartElement().getName()); 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(); } } eventReader.close(); }
From source file:Main.java
/** * Ueberprueft, ob es ein End-Event mit dem uebergebenen Namen ist. * * @param event der XML-Event//from ww w .j a v a2 s .c o m * @param name Name des Start-Elements * @return true, falls es ein End-Element ist */ public static boolean isEndElement(final XMLEvent event, final QName name) { return event.isEndElement() && event.asEndElement().getName().equals(name); }
From source file:Main.java
public static boolean isEndTag(XMLEvent e, String localName) { return e.isEndElement() && localNameOf(e).equals(localName); }
From source file:Main.java
/** * Advances the event stream until it encounters a start or end tag, but * does not actaully read the event.//from w w w . j a v a 2 s . c om * * @param reader The reader to peek. * @return The next StartElement or EndElement event, retrieved using * <code>peek()</code>, or <code>null</code> if the end of the * stream was encountered before any tag event. * @throws XMLStreamException If an error occurs reading the stream. */ public static final XMLEvent nextTag(XMLEventReader reader) throws XMLStreamException { while (reader.hasNext()) { XMLEvent nextEvent = reader.peek(); if (nextEvent.isStartElement() || nextEvent.isEndElement()) { return nextEvent; } else { // eat the event. reader.nextEvent(); } } return null; }
From source file:Main.java
/** * Copies all events within a <code>StartElement</code> until the matching * <code>EndElement</code> is reached. This method assumes that the reader * is positioned after the <code>StartElement</code> event, and when the * method completes, the stream will be positioned before the * <code>EndElement</code> event, but it will not consume the end tag. * //from w w w. jav a 2s . c o m * @param reader The event stream to read, positioned after the * <code>StartElement</code> * @param consumer The destination for events read from teh stream, or * <code>null</code> to ignore the events completely. * @throws XMLStreamException If an error occurs reading events. */ public static final void copyElementContent(XMLEventReader reader, XMLEventConsumer consumer) throws XMLStreamException { if (!reader.hasNext()) return; for (int depth = 1; true;) { // peek and see if we're at the end element XMLEvent currEvt = reader.peek(); if (currEvt.isEndElement()) { depth--; if (depth == 0) { break; } } else if (currEvt.isStartElement()) { depth++; } // consume the event currEvt = reader.nextEvent(); if (consumer != null) { consumer.add(currEvt); } } }
From source file:Main.java
public static String localNameOf(XMLEvent e) { if (e.isStartElement()) { return e.asStartElement().getName().getLocalPart(); } else if (e.isEndElement()) { return e.asEndElement().getName().getLocalPart(); }/*w ww . j av a 2s. co m*/ throw new RuntimeException(e + " isn't a tag to get the name of."); }
From source file:Main.java
public static String digest(InputStream in) throws Exception { MessageDigest messageDigest = null; XMLInputFactory inputFactory = XMLInputFactory.newFactory(); messageDigest = MessageDigest.getInstance("MD5"); XMLEventReader eventReader = inputFactory.createXMLEventReader(in); while (eventReader.hasNext()) { XMLEvent event = eventReader.nextEvent(); if (event.isStartElement()) { messageDigest.update(event.asStartElement().getName().toString().getBytes()); } else if (event.isEndElement()) { messageDigest.update(event.asEndElement().getName().toString().getBytes()); }//from ww w.jav a 2 s . c o m } StringBuffer result = new StringBuffer(); byte[] digest = messageDigest.digest(); for (byte b : digest) { result.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1)); } return result.toString(); }
From source file:com.predic8.membrane.core.interceptor.rest.XML2HTTP.java
private static String slurpXMLData(XMLEventReader parser, StartElement sevent) throws XML2HTTPException, XMLStreamException { StringWriter bodyStringWriter = new StringWriter(); XMLEventWriter bodyWriter = null; int depth = 0; synchronized (xmlOutputFactory) { bodyWriter = xmlOutputFactory.createXMLEventWriter(bodyStringWriter); }//w w w . j a va2s . c o m while (parser.hasNext()) { XMLEvent event = parser.nextEvent(); if (event.isEndElement() && depth == 0) { bodyWriter.flush(); return bodyStringWriter.toString(); } bodyWriter.add(event); if (event.isStartElement()) depth++; else if (event.isEndElement()) depth--; } throw new XML2HTTPException("Early end of file while reading inner XML document."); }