Bonjour,

j'ai un fichier xml :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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

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.