Hallo Leute,
ich bin neu hier und habe da mal einige Fragen zum Thema XML.
Normalerweise Programiere ich nur im C++ und VB Bereich, doch diesmal muss ich mich mit XML ein wenig auseinander setzen.
Mein Problem ist, dass ich eine Seite für einen Auto Chip tuner machen möchte, wo der User bestimmte Daten abrufen kann.
Dafür habe ich zum einen die HTML Datei mit dem Code für die Seite, sowie mehrere XML Dateien. Die eine Datei heißt hersteller.xml und die zweite heißt dann wie der entsprechende Hersteller heißt. In der Hersteller Datei stehen alle Fahrzeughersteller mit einem Verweis auf die Datendatei mit den Modellen von dem Hersteller.
Wenn der User jetzt zB. den Hersteller Audi in der Hersteller Liste wählt, dann wird die Datei Audi.xml ausgelesen und die Modelle in die Liste Modelle geschrieben. Das Problem was ich nun aber habe, das alle Motoren in der Motoren Liste eingetragen werden, egal zu welchen Model sie gehören. Sprich es werden alle Motoren von dem Hersteller angezeigt und nicht nur die von dem Model.
Hier habe ich mal für euch den Code von der html datei:
Die Hersteller Datei sieht wie folgt aus:
Da hier ja eine beschränkung auf 10000 Zeichen ist, findet Ihr die entsprechende Audi XML unter dem Pfad: http://m-mtuning.de/Joomla/xml/audi.xml
Um den Fehler auch Bildlich zu sehen, könnt Ihr auch unter http://m-mtuning.de/Joomla/index.php?option=com_content&view=article&id=46&It emid=28 schauen.
Wenn ich wie gesagt AUDI auswähle und dann AUDI 80, dann zeigt er mir auch die Motoren an, welche es eigentlich nicht für dieses Model gibt.
ich bin neu hier und habe da mal einige Fragen zum Thema XML.
Normalerweise Programiere ich nur im C++ und VB Bereich, doch diesmal muss ich mich mit XML ein wenig auseinander setzen.
Mein Problem ist, dass ich eine Seite für einen Auto Chip tuner machen möchte, wo der User bestimmte Daten abrufen kann.
Dafür habe ich zum einen die HTML Datei mit dem Code für die Seite, sowie mehrere XML Dateien. Die eine Datei heißt hersteller.xml und die zweite heißt dann wie der entsprechende Hersteller heißt. In der Hersteller Datei stehen alle Fahrzeughersteller mit einem Verweis auf die Datendatei mit den Modellen von dem Hersteller.
Wenn der User jetzt zB. den Hersteller Audi in der Hersteller Liste wählt, dann wird die Datei Audi.xml ausgelesen und die Modelle in die Liste Modelle geschrieben. Das Problem was ich nun aber habe, das alle Motoren in der Motoren Liste eingetragen werden, egal zu welchen Model sie gehören. Sprich es werden alle Motoren von dem Hersteller angezeigt und nicht nur die von dem Model.
Hier habe ich mal für euch den Code von der html datei:
Code:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Fahrzeugmarke</title> <script language='JavaScript'><!-- var ersterArray = new Array(); var zweiterArray = new Array(); var vierterArray = new Array(); var strDataFile; var Selected; var Selected2; var Selected3; function neu() { if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","http://www.m-mtuning.de/Joomla/xml/hersteller.xml",false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; var marke = xmlDoc.getElementsByTagName("name"); var links = xmlDoc.getElementsByTagName("datei"); for ( var i = 0; i < 44; ++i ) { ersterArray[i] = marke[i].childNodes[0].nodeValue.toString(); zweiterArray[i] = links[i].childNodes[0].nodeValue.toString(); } } function SelectHash() { var Selected = document.testform.Hashref1.options; var Num = 0; while (Num < 44) { var NewArray = new Array(44); NewArray[Num] = (ersterArray[Num]); document.testform.Hashref1.options[Num] = new Option(NewArray[Num],NewArray[Num]); Num++; } } function SelectHash2() { Selected2 = document.testform.Hashref1.options[document.testform.Hashref1.options.selectedIndex].value; var dummy; var strSource = ".xml"; var strData = ""; dummy = (Selected2.replace(" ","")); strData = (dummy.toLowerCase()); strDataFile = strData + strSource; alert(strDataFile); neu2(); } function neu2() { if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } var pfad = "http://www.m-mtuning.de/Joomla/xml/" + strDataFile; xmlhttp.open("GET",pfad,false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; var dritterArray = new Array(); var modell = xmlDoc.getElementsByTagName("modell"); var motor = xmlDoc.getElementsByTagName("motor"); var daten = xmlDoc.getElementsByTagName("daten"); for (var i = 0; i < modell.length; i++) { dritterArray[i] = modell[i].childNodes[0].nodeValue.toString(); // vierterArray[i] = motor[i].childNodes[0].nodeValue.toString(); // document.testform.Hashref2.options[i] = new Option(dritterArray[i]); } document.testform.Hashref2.length = dritterArray.length; alert(dritterArray[0]); } function SelectHash3(){ Selected3 = document.getElementById("Hashref2").options[document.getElementById("Hashref2").selectedIndex].index; alert(Selected3); } //--> </script> </head> <form action="" name="Formular"> <input onclick="neu();SelectHash()" type="button" value=" Chiptuning Abfrage " /> </form> <form action="somecgi" method="post" name="testform"> <br /> <br /> <table width="500"> <tbody> <tr> <td width="25%"> Fahrzeugmarke:<br /> <select name="Hashref1" onchange="SelectHash2()" style="width: 150px"></select></td> <td width="25%"> Fahrzeugmodell:<br /> <select name="Hashref2" id="Hashref2" onchange="SelectHash3()" style="width: 150px"></select></td> <td width="25%"> Motorvariante:<br /> <select name="Hashref3" onchange="SelectHash3()" style="width: 150px"></select></td> </tr> </tbody> </table> </form> </body> </html>
Die Hersteller Datei sieht wie folgt aus:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?> <marke_name> <marke> <name>Alfa Romeo</name> <datei>alfaromeo.xml</datei> </marke> <marke> <name>Audi</name> <datei>audi.xml</datei> </marke> <marke> <name>BMW</name> <datei>bmw.xml</datei> </marke> </marke_name>
Um den Fehler auch Bildlich zu sehen, könnt Ihr auch unter http://m-mtuning.de/Joomla/index.php?option=com_content&view=article&id=46&It emid=28 schauen.
Wenn ich wie gesagt AUDI auswähle und dann AUDI 80, dann zeigt er mir auch die Motoren an, welche es eigentlich nicht für dieses Model gibt.
Comment