createFilteredReader - how does it work?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mickey0
    New Member
    • Jan 2008
    • 142

    createFilteredReader - how does it work?

    Hello,
    I just would like use XMLStreamReader (going on with reader.next() in a loop) to read an xml BUT I want to skip whitespace, '\n', '\t' and similars.
    I thought the solution was XMLStreamFilter ed and I coded it (maybe in a wrong way either I didn't understand how to use it):

    Code:
    //main
    FileInputStream source = null;
    XMLInputFactory inputFactory = null;		    
    inputFactory.createXMLStreamReader(source);
    source = new FileInputStream("myfile.xml");
    inputFactory =  XMLInputFactory.newFactory();   
    XMLStreamReader reader = inputFactory.createFilteredReader(inputFactory.createXMLStreamReader(source), new MyStreamFilter() );
    
    while ( reader.hasNext() ) {
       int event = reader.next();
    }
    
    //MyStreamFilter.java
    public class MyStreamFilter implements javax.xml.stream.StreamFilter {
    	public boolean accept(XMLStreamReader reader) {
    		if (reader.isWhiteSpace() || 
    			(reader.hasText() && ( reader.getText() == "\n"   || reader.getText() == "\t"))   ) { 
    			return false;
    		}
    		return true;
    	}
    }
    Something wrong happen: accept() is called, return true, and the problem exit printing 'null' on the console. none exceptions.
  • mickey0
    New Member
    • Jan 2008
    • 142

    #2
    sorry the code was fine; I've made a mistake; however, is the statment IF fine to catch all wihitespace, \t, \n, \r\n characters? I guess I'm forgetting same of them.
    thanks

    Comment

    Working...