Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #4921

DOMDocument HTML problem

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)

Show all headers | View raw


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


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