Bonjour tout le monde,
Je rencontre un probleme en essayant de parser mon document xml pour le transformer en xhtml. Je précise que je suis débutant en ajax.
Je recois en fait une reponse SOAP 1.2 de mon server qui contient du code xml que je veux intégrer dans ma page web.
Code XML recu
J'aimerai transformer ce code par l'intermédiaire du javascript en:
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 <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV='http://www.w3.org/2003/05/soap-envelope' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'> <SOAP-ENV:Body> <SearchObsbyObsvResponse> <Obs xmlns:xsi="http://www.w3c.org/2001/XMLSchema-Instance"> <specie>Golden Eagle</specie> <observer>test</observer> <lat>51.708973</lat> <long>-1.0468351</long> <datetime>Tue Nov 02 15:20:21 GMT 2004</datetime> <numberseen>20</numberseen> </Obs> <Obs xmlns:xsi="http://www.w3c.org/2001/XMLSchema-Instance"> <specie>Barnacle Goose</specie> <observer>test</observer> <lat>51.651276</lat> <long>-1.0312163</long> <datetime>Mon Oct 01 08:07:33 BST 2001</datetime> <numberseen>18</numberseen> </Obs> </SearchObsbyObsvResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Je recois donc le body de ma reponse soap 1.2 et pour le parser j'utilise ce code javascript
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 <ul> <li>Golden Eagle</li> <li>test</li> <li>51.708973</li> <li>-1.0468351</li> <li>Tue Nov 02 15:20:21 GMT 2004</li> <li>20</li> </ul> <ul> <li>Barnacle Goose</li> <li>test</li> <li>51.651276</li> <li>-1.0312163</li> <li>Mon Oct 01 08:07:33 BST 2001</li> <li>18</li> </ul>
Mais e est null lorsque je le rajoute à mon DocumentFragment.
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 function onReadyStateChanged() { if (xmlhttp.readyState == 4) { if (xmlhttp.status==200) { // http return code 200 - OK var xmlDoc = xmlhttp.responseXML.documentElement; var ObsList = xmlDoc.getElementsByTagName("Obs"); alert(ObsList.length); if (ObsList.length != 0) { var f = document.createDocumentFragment(); for(i = 0; i<ObsList.length; i++) { var e = document.createElement("ul"); var node = ObsList.item(i); while(node.hasChildNodes()){ var li = document.createElement("li"); li.appendChild(node.firstChild.nodeValue); e.appendChild(li); node = node.nextSibling; } f.appendChild(e); } document.getElementById("divContent").appendChild(f); } } } }
Quelqu'un pourrait-il m'expliquer pourquoi ??
Merci d'avance
Romain
Partager