flokli
Erfahrenes Mitglied
Hi,
ich habe (wieder mal) ein Problem mit Ajax.
Ich lese eine XML-Datei mit Javascript ein:
waiter() und unwaiter() setzen das "Ladebildchen", die ersten Zeilen Code sind identisch mit dem aus http://www.w3clubs.com/mozdev/httprequest_test_xml.html
Jetzt hab ich aber das Problem, dass ich bei "item.getElementsByTagName('world').firstChild.data" die Fehlermeldung bekomme, dass "item.getElementsByTagName('world').firstChild" keine Eigenschaften hat, da "item.getElementsByTagName('world').firstChild" "undefinied" ist.
Wo liegt mein Fehler?
edit:
Ahem. Da war ich wohl zu schnell.
[0] vergessen.
item.getElementsByTagName('world')[0].firstChild.data läuft. Trotzdem danke!
ich habe (wieder mal) ein Problem mit Ajax.
Ich lese eine XML-Datei mit Javascript ein:
HTML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<root>
<info content="foo" worlds="bar" />
<items>
<item key="0">
<world>11111111</world>
<link>aaaaaaa</link>
<inputstr>bbbbbbbb</inputstr>
</item>
</items>
</root>
Code:
var http_request = false;
function makeRequest(url) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
waiter();
http_request.onreadystatechange = readContents;
http_request.open('GET', url, true);
http_request.send(null);
}
function readContents(){
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var xmldoc = http_request.responseXML;
var root_node = xmldoc.getElementsByTagName('root').item(0);
//start functions
pasteTable(root_node);
unwaiter();
} else {
alert('There was a problem with the request.');
}
}
}
function pasteTable(root_node){
var info=root_node.getElementsByTagName('info')[0];
var info_content=info.getAttribute('content');
var info_worlds=info.getAttribute('worlds');
var items=root_node.getElementsByTagName('items')[0];
var field_servers="<table cellpadding='0' cellspacing='0' border='0'>";
field_servers+="<tr><td width='1'>World</td><td width='100%'>Link</td></tr>";
for(var i=0;i<items.getElementsByTagName('item').length;i++)
{
var item=items.getElementsByTagName('item')[i];
field_servers+="<tr><td>"+item.getElementsByTagName('world').firstChild.data+"</td><td>Link</td></tr>";
}
field_servers+="</table>";
document.getElementById('field_servers').innerHTML=field_servers;
}
function waiter(){
document.getElementById('wait_small').src='images/loading.gif';
}
function unwaiter(){
document.getElementById('wait_small').src='images/space.gif';
}
waiter() und unwaiter() setzen das "Ladebildchen", die ersten Zeilen Code sind identisch mit dem aus http://www.w3clubs.com/mozdev/httprequest_test_xml.html
Jetzt hab ich aber das Problem, dass ich bei "item.getElementsByTagName('world').firstChild.data" die Fehlermeldung bekomme, dass "item.getElementsByTagName('world').firstChild" keine Eigenschaften hat, da "item.getElementsByTagName('world').firstChild" "undefinied" ist.
Wo liegt mein Fehler?
edit:
Ahem. Da war ich wohl zu schnell.
[0] vergessen.
item.getElementsByTagName('world')[0].firstChild.data läuft. Trotzdem danke!
Zuletzt bearbeitet: