Also JS ist nichts für mich. *g* Was mache ich denn hier falsch:
Der Versuch, das ganze halbwegs in eine Klasse zu packen:
Code:
function XMLParser()
{
var _xmlDoc = null;
this.loadXMLDoc = function (XMLFile)
{
try //Internet Explorer
{
_xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
_xmlDoc = document.implementation.createDocument('','',null);
}
catch(e) { alert(e.message) }
}
try
{
_xmlDoc.async = false;
_xmlDoc.load(XMLFile);
}
catch(e) { alert(e.message) }
}
this.getNodes = function (Node)
{
return _xmlDoc.getElementsByTagName(Node);
}
this.getChildValue = function (Node, Child)
{
return Node.getElementsByTagName(Child);
}
}
Das Hintergrundwissen habe ich hierher:
loadXMLDoc(),
Node-Funktionen.
Mein Aufruf ist dieser:
Code:
var my_xml = new XMLParser();
my_xml.loadXMLDoc('http://
localhost/books.xml');
xml_nodes = my_xml.getNodes('book');
for (i = 0; i < xml_nodes.length; i++)
{
title = my_xml.getChildValue(xml_nodes[i], 'title');
author = my_xml.getChildValue(xml_nodes[i], 'author');
alert(title + ' ' + author);
}
Die
XML-Datei.
xml_nodes.length ist jedoch immer 0.