Using StAX to read all text elements

resloseid

New Member
I need to parse an xml file, no matter the tags in it, and read the text of all its leaves (text element only). I'm using StAX but it seems there is no way to know in advance that an element is text only (so getElementText throws an exception for not leave element).So I decided to use a filter, filtering only tag elements, and iterate throw the document in this way:\[code\]InputStream in = null; try { in = new FileInputStream("file.xml"); DatiEstratti de = DatiEstratti.getInstance(); // Processamento ad eventi XMLInputFactory factory = (XMLInputFactory) XMLInputFactory.newInstance(); XMLEventReader eventReader = factory.createXMLEventReader(in); // usa il filtro per filtrare solo i tag element eventReader = factory.createFilteredReader(eventReader, new ElementOnlyFilter()); while (eventReader.hasNext()) { XMLEvent event = eventReader.nextEvent(); if (event.getEventType() == XMLStreamConstants.START_ELEMENT) { StartElement startElement = event.asStartElement(); XMLEvent peekEvent = eventReader.peek(); if(peekEvent.isEndElement()){ // questa
 
Back
Top