Jump to content

php DOM insertBefore is inserting after


thedudeabides

Recommended Posts

I don't know DOM very well.  I can split html code into an array by paragraph and insert new lines, just not at the beginning.  When I do $p_nodes->item(0)->insertBefore, it inserts the line after item(0).  Here's an overview:

 

<I want to insert a line here>
<p> line one </p>
<I can insert a line here>
<p> line two</p>
etc

 

Here's the php code:

$dom = new DOMDocument('1.0', 'UTF-8');
$dom->loadHTML($html);
$dom->encoding = 'UTF-8';

$content_xpath = new DOMXPath($dom);

//Find paragraphs
$p_nodes = $content_xpath->evaluate('//p');

//Add the new element
$insertLine = $dom->createdocumentFragment();
$insertLine->appendXML('<div>hello</div>');

//$p_nodes->item(0)->appendChild($insertLine); //this inserts the new line after line 1
$p_nodes->item(0)->insertBefore($insertLine); //this inserts after, same as appendchild

$html = $dom->saveHTML();

 

Note: this code is greatly simplified- I would love to just concatenate the new line, but trust me- its not possible, it needs to be done with DOM.

Link to comment
https://forums.phpfreaks.com/topic/222074-php-dom-insertbefore-is-inserting-after/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.