charger un fichier xml en java avec StAX
Bonjour,
j'ai un fichier xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0" encoding="UTF-8"?>
<tns:bibliotheque xmlns:tns="http://www.jmdoudoux.com/test/stax" *
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jmdoudoux.com/test/stax biblio2.xsd ">
<?MonTraitement?>
<tns:livre>
<!-- mon commentaire -->
<tns:titre>titre 1</tns:titre>
<tns:auteur>
<tns:nom>nom 1</tns:nom>
<tns:prenom>prenom 1</tns:prenom>
</tns:auteur>
<tns:editeur>editeur 1</tns:editeur>
</tns:livre>
</tns:bibliotheque> |
je veux charger ce fichier en java avec StAx
voila le code java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| import java.io.FileReader;
import javax.xml.stream.events.XMLEvent;
import javax.xml.stream.*;
import javax.xml.stream.XMLStreamException;
public class test_StAX {
public static void main(String[] args) throws Exception {
XMLInputFactory xmlif = XMLInputFactory.newInstance();
XMLStreamReader xmlr = xmlif.createXMLStreamReader(new FileReader("resources/exemple.xml"));
XMLStreamReader xmlsr = xmlif.createFilteredReader(xmlr, new MonStreamFilter());
while (xmlsr.hasNext()) {
int eventType = xmlsr.next();
switch (eventType) {
case XMLEvent.START_ELEMENT:
System.out.println("START_ELEMENT "+xmlsr.getName());
break;
case XMLEvent.END_ELEMENT:
System.out.println("END_ELEMENT "+xmlsr.getName());
break;
default:
System.out.println("AUTRE "+xmlsr.getName());
break;
}
}
}
}
-------------------------classe_MonStreamFilter----------------------------------
import javax.xml.stream.StreamFilter;
import javax.xml.stream.XMLStreamReader;
public class MonStreamFilter implements StreamFilter {
@Override
public boolean accept(XMLStreamReader reader) {
if(reader.isStartElement() || reader.isEndElement())
return true;
else
return false;
}
}
-------------------------------------------------------------------------- |
quand j'execute il me donne l'erreur suivante dans la console
Citation:
Error while creating a stream Filterjavax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,67]
Message: Element type "tns:bibliotheque" must be followed by either attribute specifications, ">" or "/>".
Exception in thread "main" javax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,67]
Message: Element type "null" must be followed by either attribute specifications, ">" or "/>".
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLStreamFilterImpl.findNextEvent(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLStreamFilterImpl.hasNext(Unknown Source)
at test_StAX.main(test_StAX.java:17)
-----------------------------------------------------------------------
que dois je faire ?
Merci.