DOMDocument HTML problem [message #177104] |
Tue, 21 February 2012 19:00 |
Aaron Gray
Messages: 4 Registered: August 2011
Karma:
|
Junior Member |
|
|
Hi, I am trying to take an incomplete "summary" of a number of characters
of an HTML fragment without DOCTYPE, HTML, or BODY elements and a possibly
incomplete unbalanced fragment, and convert it to a ballanced fragment
without DOCTYPE, HTML, or BODY, using DOMDocument and friends.
This is what I have got (it works without a Error 500 using php command line
tool :-
~~~~
<?php
$html = '<div>
<p><a href="#test">foo</a></p>
<hr>
<br>
<div>name</div>
';
$dom = new DOMDocument();
$newdom = new DOMDocument();
$dom->loadHTML($html);
$Elements = $dom->childNodes;
foreach ( $Elements as $Element ) {
$NewElement = $newdom->createElement($Element->nodeName);
if ($Element->attributes)
foreach($Element->attributes as $attribute)
$NewElement->setAttribute($attribute->name, $attribute->value);
if ($Element->childNodes)
foreach($Element->childNodes as $child)
$NewElement->appendChild( $newdom->importNode($child, true));
$newdom->appendChild( $NewElement);
}
echo $newdom->saveHTML();
?>
~~~~
It balances the unbalanced <div> seems to be adding a duplicate
<HTML></HTML> at the beginning of the output.
Also I need to get the fragment of the code like a JavaScript DOM innerHTML
without the <HTML> and <BODY> tags.
Many thanks in advance.
Hope you can help,
Aaron
|
|
|