2016-03-24 11 views
0

Ich habe ein Element nach Name Attribut in PHP mit einem DOMDocument (ich möchte nicht ID verwenden), aber wie kann ich dann legen Sie es TextContent und speichern auf dem Dom-Objekt?Php DOMDocument Set Element Wert nach Name

Bisher habe ich den folgenden Code:

$dom = new DOMDocument(); 
$dom->loadHTML($html); 
foreach($dom->getElementsByTagName('*') as $element){ 
    $element_name = $element->getAttribute("name"); 
    if($element_name == 'mytextareaname') { 
    $element->textContent = "Some text content"; 
    } 
} 
$html_with_values = $dom->saveHTML(); 

Aber die Werte werden nicht gespeichert, weil ich wahrscheinlich die $ dom Objekt verweisen müssen, wenn anstatt $ Element zu speichern. Wie kann ich das tun, kann ich einen Schlüssel zur foreach hinzufügen und diesen benutzen?

+0

Ihre Syntax sollte funktionieren. Sind Sie sicher, dass die 'if'-Bedingung eingehalten wird? – fusion3k

+0

Ja, ich habe getestet, dass die if-Anweisung verarbeitet wird, aber ich sehe jetzt, dass $ element-> textContent nicht gesetzt wird, weil echo $ element-> textContent unmittelbar nach dem Setzen des Wertes nichts zurückgibt. –

+0

Können Sie Ihren echten HTML-Code laden? – fusion3k

Antwort

0

Die Einstellung textContent des dom-Elements für eine TextArea hat nicht funktioniert, aber die Einstellung von nodeValue hat sowohl nodeValue als auch textContent gesetzt.