import javax.xml.stream.EventFilter;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;

public class JI9048353 {

	public static void main(String[] args) throws XMLStreamException {
		XMLInputFactory staxFactory = XMLInputFactory.newInstance(); 
		XMLEventReader staxReader = staxFactory.createXMLEventReader(new java.io.StringReader("<a><b/><c/></a>")); 
		EventFilter eventFilter = event -> event.isStartElement() && event.asStartElement().getName().getLocalPart().equals("c"); 
		XMLEventReader staxFilteredReader = staxFactory.createFilteredReader(staxReader, eventFilter); 

		XMLEvent nextEvent = staxReader.nextEvent(); 
		assert nextEvent.isStartDocument(); 

		XMLEvent peek1 = staxReader.peek(); 
		System.out.println(peek1.asStartElement().getName()); 
		assert peek1.asStartElement().getName().getLocalPart().equals("a"); 

		XMLEvent filteredPeek = staxFilteredReader.peek(); 
		System.out.println(filteredPeek.asStartElement().getName()); 
		assert filteredPeek.asStartElement().getName().getLocalPart().equals("c"); 

		XMLEvent peek2 = staxReader.peek(); 
		System.out.println(peek2.asStartElement().getName()); 
		assert peek2.asStartElement().getName().getLocalPart().equals("a"); 

	}

}
