StAX - příklad s iterátorem

Příklad 4. StAX - přístup iterátorem


        import java.io.*; 
        import java.util.Iterator; 
        import javax.xml.namespace.QName; 
        import javax.xml.stream.*; 
        import javax.xml.stream.events.*; 
        public class ParseByEvent { 
         public static void main(String[] args) throws FileNotFoundException,
          XMLStreamException { 
         // Use the reference implementation for the XML input factory 
          System.setProperty("javax.xml.stream.XMLInputFactory", "com.bea.xml.stream.MXParserFactory"); // Create the XML input factory
          XMLInputFactory factory = XMLInputFactory.newInstance(); // Create the
          XML event reader FileReader reader = new FileReader("somefile.xml");
          XMLEventReader r = factory.createXMLEventReader(reader); // Loop over XML input stream and process events 
          while(r.hasNext()) { 
           XMLEvent e = r.next(); 
           processEvent(e); 
          } 
         } 
        /** 
         * Process a single XML event 
         * @param e - the event to be processed 
         */ 
        private static void processEvent(XMLEvent e) { 
         if (e.isStartElement()) { 
          QName qname = ((StartElement) e).getName(); 
          String namespaceURI = qname.getNamespaceURI(); 
          String localName = qname.getLocalPart();
          Iterator iter = ((StartElement) e).getAttributes(); 
          while(iter.hasNext()) { 
           Attribute attr = (Attribute) iter.next(); 
           QName attributeName = attr.getName(); 
           String attributeValue = attr.getValue(); 
          } 
         } 
         if (e.isEndElement()) { 
          QName qname = ((EndElement) e).getName(); 
         } 
         if (e.isCharacters()) { 
          String text = ((Characters) e).getData(); 
         } 
         if (e.isStartDocument()) { 
          String version = ((StartDocument) e).getVersion(); 
          String encoding = ((StartDocument) e).getCharacterEncodingScheme(); 
          boolean isStandAlone = ((StartDocument) e).isStandalone(); 
         } 
        } 
       }
       

[Poznámka] Poznámka

příklad převzat z Tip: Use XML streaming parsers (IBM DeveloperWorks, sekce XML).