Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #4921
| From | "Aaron Gray" <ang.usenet@gmail.com> |
|---|---|
| Newsgroups | comp.lang.php |
| Subject | DOMDocument HTML problem |
| Date | 2012-02-21 19:00 +0000 |
| Message-ID | <9qi7vtFfmvU1@mid.individual.net> (permalink) |
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
Back to comp.lang.php | Previous | Next — Next in thread | Find similar | Unroll thread
DOMDocument HTML problem "Aaron Gray" <ang.usenet@gmail.com> - 2012-02-21 19:00 +0000 Re: DOMDocument HTML problem Jerry Stuckle <jstucklex@attglobal.net> - 2012-02-21 14:14 -0500 Re: DOMDocument HTML problem "Aaron Gray" <ang.usenet@gmail.com> - 2012-02-21 20:08 +0000
csiph-web