Comment importer de la chaîne XML en php DOMDocument

Par exemple, j'ai créer un DOMDocument comme ça :

<?php

$implementation = new DOMImplementation();

$dtd =
  $implementation->createDocumentType
  (
    'html',                                     //qualifiedName
    '-//W3C//DTD XHTML 1.0 Transitional//EN',   //publicId
    'http://www.w3.org/TR/xhtml1/DTD/xhtml1-'
      .'transitional.dtd'                       //systemId
  );

$document = $implementation->createDocument('', '', $dtd);

$elementHtml     = $document->createElement('html');
$elementHead     = $document->createElement('head');
$elementBody     = $document->createElement('body');
$elementTitle    = $document->createElement('title');
$textTitre       = $document->createTextNode('My bweb page');
$attrLang        = $document->createAttribute('lang');
$attrLang->value = 'en';

$document->appendChild($elementHtml);
$elementHtml->appendChild($elementHead);
$elementHtml->appendChild($attrLang);
$elementHead->appendChild($elementTitle);
$elementTitle->appendChild($textTitre);
$elementHtml->appendChild($elementBody);

Donc, maintenant, si j'ai le xhtml chaîne comme ça :

<?php
$xhtml = '<h1>Hello</h1><p>World</p>';

Comment puis-je importer dans le <body> nœud de mon DOMDocument ?

Pour l'instant, la seule solution que j'ai trouvé, c'est quelque chose comme ça :

<?php
$simpleXmlElement = new SimpleXMLElement($xhtml);

$domElement = dom_import_simplexml($simpleXmlElement);

$domElement = $document->importNode($domElement, true);

$elementBody->appendChild($domElement);

Cette solution semble très mauvais pour moi, et de créer des problemes, comme quand je l'ai essayer avec une chaîne comme ça :

<?php
$xhtml = '<p>Hello&nbsp;World</p>';

Ok, je peux contourner ce problème en convertissant xhtml entités en Unicode entités, mais c'est tellement laid...

Toute aide ?

Merci par avance !

Liés à la question :

OriginalL'auteur Pascal Qyy | 2010-11-02