| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Apr 2007
Beiträge: 142
| Rekursion...
Hallo Forum, ich versuche gerade mithilfe einer Rekursion eine xml-datei auszulesen, um daraus ein menü zu bauen. Ich habe hierfür das Beispiel : XML Flash Menü in Typo3 benutzt. Code: xmldaten = new XML ();
function xml_rek (XMLData, tiefe)
{
var str = "";
var mcName = "ebene_";
var btn_name = "btn_";
for (var w = 0; w < tiefe; w++)
{
str += "-";
btn_name += w;
}
mcName += tiefe;
var msg = (XMLData.nodeType == 1) ? str + XMLData.nodeName : str + XMLData.nodeValue;
trace (msg + " tiefe " + tiefe);
trace (mcName);
//
trace (btn_name);
if (XMLData.hasChildNodes ())
{
tiefe++;
for (var i = 0; i < XMLData.childNodes.length; i++)
{
xml_rek (XMLData.childNodes[i],tiefe);
}
}
}
xmldaten.ignoreWhite = true;
xmldaten.onLoad = function (ok)
{
if (ok)
{
xml_rek (this.firstChild,0);
} else
{
trace ("Fehler beim Laden der XML Datei");
}
};
xmldaten.load ("menue.xml"); Code: menu tiefe 0 ebene_0 btn_ -item tiefe 1 ebene_1 btn_0 -item tiefe 1 ebene_1 btn_0 --item tiefe 2 ebene_2 btn_01 ---item tiefe 3 ebene_3 btn_012 ----item tiefe 4 ebene_4 btn_0123 -----item tiefe 5 ebene_5 btn_01234 ------item tiefe 6 ebene_6 btn_012345 ------item tiefe 6 ebene_6 btn_012345 kann mir jemand kurz auf de sprünge helfen, an welcher stelle ich den btn-namen erzeugen kann, damit in jeder ebene der zähler auf 0 gesetzt wird und ich damit eindeutige mcnamen für die buttons in einer eben habe? Gruß skittles |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
| http://www.seibsprogrammladen.de/fra...lgorithmen/XML Code: function fXML_parsen(_xml, _tiefe) {
var _nr = 0;
do {
switch (_xml.nodeName) {
case 'a' :
case 'b' :
case 'c' :
_nr++;
trace('btn_'+_tiefe+'_'+_nr);
// trace('Tiefe:'+_tiefe+" NodeName:"+_xml.nodeName+" Value:"+_xml.firstChild.nodeValue);
break;
}
if (_xml.hasChildNodes()) {
fXML_parsen(_xml.firstChild, _tiefe+1);
}
} while (_xml=_xml.nextSibling);
}
//
// Anwendungsbeispiel:
_xml = new XML("<a>aaa</a><a>aaa<b>bbb</b><b>bbb<c>ccc</c></b></a><a>aaa</a>");
fXML_parsen(_xml.firstChild, 0);
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Apr 2007
Beiträge: 142
|
hallo hgseib, danke für deine Antwort. Deine Rekursives Beispiel habe ich mir damals schon betrachtet, muss aber zugeben, dass ich mich da auch erstmal ne weile mit beschäftigen musste. Ich habe nun auch Deine Variante mit dem _nr als counter für die Unterknoten eingebaut. Vielen Dank dafür! skittles |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |