2011-01-08 21 views
0

ich ein HTML-Knoten wie so haben:PHP DOMElement, Ersetzen von Text eines Knotens

<b>Bold text</b> 

Eine Variable $ el einen DOMElement Verweis auf den Text des HTML-Knoten enthält ("Bold Text"), bekam von der XPath-Ausdruck // b/text()

ich möchte das Element ändern

<b><span>Bold Text</span></b> 

Also habe ich versucht:

$span = $doc->createElement('span', "Bold Text"); 
$el->parentNode->replaceChild($span,, $el) 

was fehlschlägt, da parentNode null ist.

So, als Test, habe ich versucht: $ el-> insertBefore ($ span, $ el);

, die keine Fehler wirft, aber keine Änderung in der Ausgabe erzeugt.

Irgendwelche Gedanken?

Antwort

1

DOMXPath-> query() mit // b/text() sollte eine DOMNodeList zurückgeben. Holen Sie ein Element mit der Methode item(). Es sollte ein DOMText sein, der ein DOMNode ist und parentNode sollte nicht null sein.

+0

Danke, ich habe bei php.net einen Fehler gemeldet, und sie haben die SimpleXML-Dokumentation angefügt, um anzuzeigen, dass/text() XPath-Abfragen keine Objekte im selben Format wie andere Abfragen zurückgeben – bcoughlan

Verwandte Themen