#1 20. November 2007 Dom XML hallo zusammen, ich bescheftige mich gerade etwas mit php und XML. hab dazu schon etwas gelesen und paar tuts durch, aber ich henge an einer sache. und zwar würde ich gerne attribute auslesen können. XML datei (trainings.xml) Code: <?xml version="1.0"?> <videotrainings> <training dauer="10"> <titel>PHP</titel> <trainer>Tobias Hauser</trainer> <trainer>Christian Wenz</trainer> </training> <training dauer="9"> <titel>Dreamweaver</titel> <trainer>Tobias Hauser</trainer> <trainer>Christian Wenz</trainer> </training> <training dauer="8"> <titel>Flash</titel> <trainer>Sascha Wolter</trainer> </training> </videotrainings> php Code: <?php $dom = new DOMDocument(); $dom->preserveWhiteSpace = false; $dom->load('trainings.xml'); $trainings = $dom->getElementsByTagName('training'); foreach ($trainings as $training) { echo htmlspecialchars($training->firstChild->firstChild->data) . '<br />'; } ?> wie kann ich den attribute "dauer" auslesen?
#2 20. November 2007 AW: Dom XML $element->getAttribute(); http://de.php.net/manual/de/function.dom-domdocument-createattribute.php
#3 20. November 2007 AW: Dom XML Nimm besser SimpleXML. Da ist der Aufwand wesentlich geringer und das sollte im Normallfall eigentlich reichen.
#4 20. November 2007 AW: Dom XML hi, den link kannte ich schon, aber hatte dabei immer ne fehlermeldung. grund war, dass ich den attribute-namen nicht eingetragen habe. aber jetzt funzt es. php Code: <?php $dom = new DOMDocument(); $dom->preserveWhiteSpace = false; $dom->load('trainings.xml'); $trainings = $dom->getElementsByTagName('training'); foreach ($trainings as $training) { echo "<p><strong>".htmlspecialchars($training->firstChild->firstChild->data) . " (".$training->getAttribute("dauer")." Std.)</strong><br />"; $trainerAr = $training->getElementsByTagName('trainer'); foreach ($trainerAr as $trainer) { echo $trainer->nodeName.": ".$trainer->textContent."<br>"; } echo "</p>"; } ?> // edit XML simple will ich nicht, da ich sowohl lesen als auch schreiben will. daher direkt mit DOM.