Hellihello Ashura,
Dann hast du aber auf keinen Fall getElementsByTagName() aus DOM sondern child_nodes() aus DOM XML genutzt.
Ersteres liefert nur Elementknoten, ein leerer String kann hier also nicht zurück gegeben werden.
jap.
Wie aber mache ich es, wenn ich vorher den unterknoten1 auf einen Wert checken möchte?
Wie gesagt, in dem du dir Zugriff auf diesen Knoten verschaffst; der Wert ist nichts weiter als ein Textknoten, steht also als Kindelement des jeweiligen Elementknotens zur Verfügung.
Also ich kriegs nicht in die Birne.
mit
$knoten=$wurzel->getElementsByTagName('knoten');
foreach ($knoten as $node) {
echo $node->nodeName."\n";
foreach($node->childNodes as $cnode) {
if($cnode->nodeType == 1) {
if ($cnode->nodeName=="unterknoten1" && $cnode->nodeValue=="unterknoten11") {
// wie kann ich jetzt den wert von unterknoten2 setzte???
};
print $cnode->nodeName .": ". $cnode->textContent . "\n";
}
}
}
klapper ich alle unterknoten der <knoten> ab. Jetzt möchte ich, wenn
<knoten>
<unterknoten1>soll gecheckt werden</unterknoten1>
<unterknoten2>soll geänder werden</unterknoten2>
</knoten>
eben beim erreichen und checken des unterknoten1 den wert von unterknoten2 ändern. Ich weiß nicht, wie ich in der obigen Schleife das praktizieren kann, da ich ja mit getElementsByTagName nicht auf einen bestimmten Knoten sondern zugriff auf eine Liste kriege.
Bei simplexml sag ich für alle knoten im knotenarray, wenn knoten->unterknoten1==irgendwas dann knoten-unterknoten2=wasanderes.
Mit item bin ich ja auch etwas Neese, weil das ja white-spaces mitnimmt und zudem auch etwas "blind" agiert. Ich kenn ja den Namen in und den Pfad in der Baumstruktur? Was denk ich falsch?
Dank und Gruß,
frankx