Creating a StAX Filter for XML

This tip creates a StAX filter using the javax.xml.stream.StreamFilter interface. This filter accepts only characters, but you can also set the filter XML to retrieve only elements, attributes, or both:

class BasicStreamFilter implements StreamFilter{public BasicStreamFilter(){}//implement the StreamFilter.accept methodpublic boolean accept(XMLStreamReader XMLsrFilter) { if(XMLsrFilter.isCharacters())return true; else return false; }}...public class StAXBasicStreamFilter{   public StAXBasicStreamFilter(){}     public static void main(String[] args)        {        XMLInputFactory XMLif=null;        XMLStreamReader XMLsr=null;        XMLStreamReader XMLsrFilter=null;              System.setProperty("javax.xml.stream.XMLInputFactory","com.sun.xml.stream.ZephyrParserFactory");      //create an XMLInputFactory intanceXMLif=XMLInputFactory.newInstance();       //setting a few propertiesXMLif.setProperty("javax.xml.stream.isSupportingExternalEntities",Boolean.TRUE);XMLif.setProperty("javax.xml.stream.isNamespaceAware",Boolean.TRUE);XMLif.setProperty("javax.xml.stream.isReplacingEntityReferences",Boolean.TRUE);                                           //get an XMLStreamReader objecttry{             XMLsr=XMLif.createXMLStreamReader           ("file:///C:/Data_Local/XML/",new FileReader             ("C://Data_local//XML//AutoDealer.xml"));   XMLsrFilter=XMLif.createFilteredReader(XMLsr,new BasicStreamFilter        ());              }catch(java.io.FileNotFoundException e)        {System.out.println(e.getMessage());   }catch(javax.xml.stream.XMLStreamException e)            {System.out.println(e.getMessage());}                                           ... while(XMLsrFilter.hasNext())      {                             int ev=XMLsrFilter.getEventType(); ...
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: