29. juni 2002 - 11:54Der er
14 kommentarer og 1 løsning
XML - Hvad er der i vejen her?
Jeg har ingen anelse om hvorfor dette ikke virker
--------I PersonKarak.htm--------
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"/> <html> <head> <script type="text/javascript"> a = 50 function Opdat(){ if (a < 150){ document.getElementById('opdat').style.width = a; a++ setTimeout("Opdat();", 1); } } </script> <script type="text/javascript"> var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("PersonKarak.xml") nodes=xmlDoc.documentElement.childNodes x=xmlDoc.recordset </script>
du ser ud til at gentage en masse der er overflødigt. Det virker da vist fint nok, men jeg ved ikke rigtig, hvad det er du vil med det. Dit nodes array indeholder et array af person objekter. Mon ikke du mener nodes[0].childNodes[1].firstChild.nodeValue istedet nodes.item(1) osv. Bare et skud i tågen.
<script type="text/javascript"> var ns_moz_xml = (document.implementation && document.implementation.createDocument)?true:false; var ie_xml = (window.ActiveXObject)?true:false;
if (ns_moz_xml || ie_xml) { if (ns_moz_xml) var xmlDoc = document.implementation.createDocument("", "", null); else if (ie_xml) var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("PersonKarak.xml"); nodes=xmlDoc.getElementsByTagName('person'); // nodes=xmlDoc.documentElement.childNodes; for (a = 0; a != nodes.length; a++){ document.write('<DL>' + '<DT>'+nodes[a].childNodes[0].firstChild.nodeValue+'</DT>'+ '<DD>'+nodes[a].childNodes[1].firstChild.nodeValue + '<br/>'+ nodes[a].childNodes[2].firstChild.nodeValue + '<br/>'+ '<A href="#######################" onclick="alert(\'' + nodes[a].childNodes[0].firstChild.nodeValue + '\');return false;">Klik her for at se ' + nodes[a].childNodes[0].firstChild.nodeValue + '\'s identitet</A><br/>'+ nodes[a].childNodes[3].firstChild.nodeValue + '<br/>'+ nodes[a].childNodes[4].firstChild.nodeValue + '<br/>'+ '</DD>'+ '</DL>'); } } </script>
Sådan noget lignende eller hvad? Det virker ikke i NS/Moz selvom jeg prøvet at tage højde for det. ANER ikke hvorfor, for koden skulle være skarp nok. Du må leve uden. (Snøft).
AAAAhhhh ja. Du må aldrig forsøge at hente en node der ikke er der. Du må altså ikke have tomme felter i XML filen uden at tage højde for det i JScript koden. Derfor bankede jeg r ind i den sidste <person>. Skulle jeg lige have tænkt på. CDATA feltet er der bare fordi jeg lavede filen igen fra en template. Aner ikke hvad det skal, da jeg selv lige er begyndt at kigge på XML. Hvis det virker kunne jeg godt tænke mig et par points :D
for the record: jeg har fundet ud af hvorledes i NS. det er lidt omstændigt, men jeg kan godt lige rifle det af hvis du vil. jeg gider ikke hvis du er ligeglad.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.