So importieren Sie XML-string in ein php-DOMDocument-Objekt

Zum Beispiel, ich erstelle eine DOMDocument so :

<?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);

So, jetzt, wenn ich einige xhtml-string so :

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

Wie kann ich es importieren in die <body> Knoten meiner DOMDocument ?

Für jetzt, die einzige Lösung, die ich gefunden habe, ist sowas :

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

$domElement = dom_import_simplexml($simpleXmlElement);

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

$elementBody->appendChild($domElement);

Diese Lösung scheint sehr schlimm für mich, und erstellen Sie einige problemes, wie wenn ich versuche mit einem string wie :

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

Ok, ich kann dieses problem umgehen, durch die Umwandlung von xhtml-Entitäten in Unicode-Entitäten, aber es ist so hässlich...

Hilfe ?

Dank im Voraus !

Verwandte Frage :

InformationsquelleAutor Pascal Qyy | 2010-11-02
Schreibe einen Kommentar