bcoughlan
bcoughlan

Reputation: 26627

PHP DOMElement, replacing text of a node

I have a HTML node like so:

<b>Bold text</b>

A variable $el contains a DOMElement reference to the text of that HTML node ("Bold text"), got from the XPath expression //b/text()

I want to change the element to

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

So I tried:

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

which fails because parentNode is null.

So, as a test, I tried: $el->insertBefore($span, $el);

which throws no errors but produces no change in the output.

Any thoughts?

Upvotes: 0

Views: 449

Answers (1)

goat
goat

Reputation: 31813

DOMXPath->query() using //b/text() should return a DOMNodeList. Get an item using the item() method. It should be a DOMText, which is a DOMNode and parentNode shouldn't be null.

Upvotes: 1

Related Questions