<?php
//getxml.php
//ID wird als Get-Parameter übergeben
$id=$_GET['i'];
//DB Verbindung! Hier: Oracle-DB
$conn = OCILogon(USER, PASS, DB);
//Select Statement
$sel = "select eqnum, description ,parent ,children, from db_table WHERE parent = '".$id."' ORDER BY description ASC";
//Select vorbereiten
$stmt=OCIParse($conn, $sel);
//Select ausführen
OCIExecute($stmt);
//Ergebnis in $result speichern, $nrows enthält die anzahl der gefetchten Zeilen
$nrows = OCIFetchStatement($stmt, $result);
//Standard XML-file, wenn keine Daten gefunden wurden
$xml = "<tree><tree text=\"ERROR: xmlfile not found for EQ $id\" /></tree>";
if ($nrows>0){
//define the XML File
//Wurzelelement des XML-Files
$xml="<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n";
$xml.="<tree>\n";
//Für jede Ergebnis-Zeile.....
for ($i=0; $i<$nrows; $i++){
//Wenn das Element keine Kindelemente hat, diesen Node schreiben
if ($result['CHILDREN'][$i]!='J'){
$xml.="\t\t<tree text=\"".htmlspecialchars($result['DESCRIPTION'][$i], ENT_COMPAT, "ISO-8859-1")."\" action=\"../liste1.php?eqnum=".$result['EQNUM'][$i]."\" target=\"_blank\" />";
}
//ansonsten diesen hier:
else{
$xml.="\t\t<tree text=\"".htmlspecialchars($result['DESCRIPTION'][$i], ENT_COMPAT, "ISO-8859-1")."\" action=\"../liste1.php?eqnum=".$result['EQNUM'][$i]."\" target=\"_blank\" src=\"getxml.php?i=".$result['EQNUM'][$i]."\" />";
}
}
//Wurzelement schließen
$xml.="</tree>\n";
}
//DB verbindung abbauen
OCIFreeStatement($stmt);
OCILogoff($conn);
//xmlfile senden
header("Content-type: text/xml");
header("Content-Disposition: attachment; filename=$id.xml");
echo $xml;
?>