thedudeabides Posted December 18, 2010 Share Posted December 18, 2010 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.