Hallo zusammen, ich habe jetzt ein bisschen mit XMl gebastelt und habe folgendes bekommen:
XMl-file
PHP-file
Was genau diese PHP datei macht ist folgende:
Comuter
Computer2
Sie listet als erstes die Hauptrubriken mit tag name level0. Wenn ich auf "Computer" clicke, dann zeigen sich die Unterrubriken mit tag-name level1, aber das Problem ist es zeigen sich alle Unterrubriken mit level1
Wie kann ich es machen, dass wenn ich auf Computer clicke, d.h wenn ich den parameter at=a1 übergebe, dass sich nur die Untermunüs von Computer anzeigen lassen und ohne diese von Computer2?
Es sollte so aussehen bei parameter at=a1:
Computer
Hardware
Software
Computer2
Kann man das irgendwie beinflussen?
Ich bedanke mich im voraus!
Gruß
Nik
XMl-file
Code:
<?xml version="1.0" encoding="iso-8859-1" ?> <item> <level0 id="a1" type="Computer"> <level1 id="b1" type="Hardware"> <level2 id="c1" type="Motherboard"></level2> <level2 id="c2" type="Modem"></level2> </level1> <level1 id="b2" type="Software"> <level2 id="c3" type="Windows"></level2> <level2 id="c4" type="Linux"></level2> </level1> </level0> <level0 id="a2" type="Computer2"> <level1 id="b3" type="Hardware2"> <level2 id="c5" type="Motherboard2"></level2> <level2 id="c6" type="Modem2"></level2> </level1> <level1 id="b4" type="Software2"> <level2 id="c7" type="Windows2"></level2> <level2 id="c8" type="Linux2"></level2> </level1> </level0> </rss>
Code:
$file="rubriken.xml"; $tiefe = 0; $at = $_GET['at']; // Tags behandeln function startElement($parser, $name, $attr) { global $text, $tiefe, $id, $type, $at; $tiefe++; $text[$tiefe] = ""; switch ($name) { case "item": echo("<table border=1>\n"); break; case "level0": $id = $attr["id"]; $type = $attr["type"]; echo("<tr><td valign=\"top\">$type</td></tr>"); break; case "level1": $id = $attr["id"]; $type = $attr["type"]; if($at == "a1") { echo("<tr><td valign=\"top\">$type</td></tr>"); } break; case "level2": $id = $attr["id"]; $type = $attr["type"]; if($at == "b1") { echo("<tr><td valign=\"top\">$type</td></tr>"); } break; } } function endElement($parser, $name) { global $text, $tiefe, $id, $type, $at; $tiefe--; switch ($name) { case "level2": if($at == "b1") { echo("\n"); } break; case "level1": if($at == "a1") { echo("\n"); } break; case "level0": echo("\n"); break; case "item": echo("</table>\n"); break; } } // Daten behandeln function charData($parser, $data) { global $text, $tiefe; // Leerdaten entfernen $data = trim($data); // Verhindert Überschreiben vorher gesetzter Werte in authorlist if ($data != "") { $text[$tiefe] = "$data"; } } // Parser erzeugen $parser = xml_parser_create(); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false); xml_set_element_handler($parser, "startElement", "endElement"); xml_set_character_data_handler($parser, "charData"); // File lesen und parsen if (!$fp = fopen($file, "r")) die("Datei $file kann nicht geöffnet werden."); while ($data = fread($fp, 4096)) { if (!xml_parse($parser, $data, feof($fp))) die("XML-Fehler: Zeile ".xml_get_current_line_number($parser)); } fclose($fp); xml_parser_free($parser);
Comuter
Computer2
Sie listet als erstes die Hauptrubriken mit tag name level0. Wenn ich auf "Computer" clicke, dann zeigen sich die Unterrubriken mit tag-name level1, aber das Problem ist es zeigen sich alle Unterrubriken mit level1

Wie kann ich es machen, dass wenn ich auf Computer clicke, d.h wenn ich den parameter at=a1 übergebe, dass sich nur die Untermunüs von Computer anzeigen lassen und ohne diese von Computer2?
Es sollte so aussehen bei parameter at=a1:
Computer
Hardware
Software
Computer2
Kann man das irgendwie beinflussen?
Ich bedanke mich im voraus!
Gruß
Nik