![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zablokowani Postów: 167 Pomógł: 2 Dołączył: 15.02.2004 Ostrzeżenie: (30%) ![]() ![]() |
Czy moglibyście zerknąć dlaczego funkcja xml2array napisana w JavaScript nie działa pod Internet Explorer i Operę? Działa tylko pod Fire Foxem. Jest ona odpowiedzialna za proste sparsowanie XML-a, który trafia do funkcji biblioteki advAjax.
Kod function godzina() { advAJAX.get({ url: 'ajax.php', onSuccess: function(obj) { var result = xml2array(obj.responseXML); document.getElementById('godzina').innerHTML = result["godzina"]; window.setTimeout('godzina()', 1000); }, }); } function xml2array(xml) { var result = new Array(); var key = null; var value = null; for (var i = 0; i < xml.childNodes.length; i++) { key = xml.getElementsByTagName("name")[i].getAttribute("id"); value = xml.getElementsByTagName("name")[0].firstChild.nodeValue; result[key] = value; } return result; } godzina(); Dane w formacie XML: Kod <data> <name id="godzina">17:00</name> </data> Proszę o pomoc i rozwiązanie problemu z funkcją xml2array. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zablokowani Postów: 167 Pomógł: 2 Dołączył: 15.02.2004 Ostrzeżenie: (30%) ![]() ![]() |
Cytat(revyag @ 2006-05-05 13:17:15) Jeśli plik xml masz postaci:
to Twoja pętla jest źle skonstruowana. Przejdzie po childNodes głównego korzenia DOM czyli po elementach <data>. Tych możesz mieć tylko jeden, bo jest to element najwyższego poziomu, więc pętla przejdzie raz, wtedy wyszukasz element name, o indeksie "i" - który jest indeksem <data> w ....childNodes głównego korzenia. I dlatego po części to działa (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Mój XML ma właśnie jeden główny katalog (root) oraz kilka podrzędnych, np:
Ten post edytował Martio 6.05.2006, 12:02:42 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 00:07 |