Hallo Zusammen,
ich versuche verzweifelt seit viel zu langer Zeit folgenden XML-Baum mit XML_Tree aufzubauen:
<?xml version="1.0"?>
<project>
<idprojects value="3"></idprojects>
<idusers value="10"></idusers>
<description value="drittes Projekt"></description>
<task value="noch eine Aufgabe"></task>
<goal value="umsetzung der aufgabe"></goal>
<date_creation value="2004-11-22"></date_creation>
<username value="macmak"></username>
<milestones>
<milestone value="macmak" idmilestones="1" idprojects="3" date_time="2005-07-30 13:00:00" description="Probemilestone"></milestone>
<milestone value="macmak" idmilestones="3" idprojects="3" date_time="2005-07-30 14:00:00" description="Probemilestone"></milestone>
<milestone value="macmak" idmilestones="5" idprojects="3" date_time="2005-07-26 14:00:00" description="Probemilestone"></milestone>
</milestones>
</project>
Alles anzeigen
Woran ich kläglich scheitere ist, dass er mir die milestone-Nodes nicht als Kinder von <milestones> anhängen will. Es gibt zwar die Methode XML_Tree::&insertChild, die als ersten Parameter "path" übergibt, der eigentlich angeben sollte, wo das Kind angehängt werden soll. Was ich aber nicht finden kann, ist die Antwort auf die Frage, wie denn der Pfad ausschauen soll.
EDIT: Hab das Problem jetzt gelöst. Und zwar hab ich endlich über Google ein Tutorial dazu gefunden, dass das ganze erklärt (zuvor waren es immer nur broken links oder die nichtsaussagende Doku zu XML_Tree) und zwar hier (ladet sehr langsam, aber doch).
Mein Code schaut nun so aus und generiert auch die oben stehende XML-Struktur. Eine Frage hätte ich aber doch: Eine Möglichkeit ihm beizubringen, dass er statt <username value="macmak"></username> <username value="macmak" /> schreibt, gibt es nicht, oder?
/*
* create the xml file of the given project
*/
$tree = new XML_Tree();
$root =& $tree->addRoot("project");
/*
* insert the project information
*/
foreach ($project AS $key => $value) {
if (! empty($value)) {
$attribs = array("value" => $value);
$node =& $root->addChild($key, "", $attribs);
}
}
/*
* insert the milestones
*/
$mNode =& $root->addChild("milestones", "");
while ($milestone = $milestones->fetchRow()) {
foreach ($milestone AS $key => $value) {
$attribs[$key] = $value;
}
$node =& $mNode->addChild("milestones", "", $attribs);
}
Alles anzeigen