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 method
public 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 intance
XMLif=XMLInputFactory.newInstance();
//setting a few properties
XMLif.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 object
try{
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();
...
No comments:
Post a Comment