Ausgabe-XML-Fragment ohne headers
Frage
Ich habe ein Gefühl, das ich dick bin zu sein, aber hier ist mein Problem:
Ich erstelle dynamische XML-Bäume mit PHP. Diese Bäume beschreiben Mitarbeiter Hierarchien, Dateiverzeichnisse usw. Sie umfassen kleine Abschnitte von Inhalten auf einer Webseite. Der Rest der Webseite ist zusammengeklebt aus verschiedenen anderen Quellen, die SQL basieren, oder statischen Text oder eine spezielle Präsentation Klasse. Wenn ich meine Bäume Ausgang gehen, verwandeln wir die XML-Daten in eine verschachtelte <ul>
. Ich möchte die Ausgabe, die ohne Doctype / header info <ul>
. PHP DomDocument und SimpleXML Klassen scheinen nicht, dies zu ermöglichen. Ist die einzige Option, die beanstandete Informationen abzustreifen, nachdem der <ul>
in einem String zu speichern?
Lösung
Es stellte sich heraus, wenn ich <xsl:output method="html" />
habe ich nicht mehr ausgegeben ein automatischer DOCTYPE. Problem gelöst.
Andere Tipps
Es gibt einen Kommentar zu diesem am Ende dieser Seite: http://www.php.net/manual/en/libxml.constants.php
SimpleXML fügt automatisch einen Header. Es gibt eine Option, um es auszuschalten, wenn ein einfaches XML-Objekt erstellen - seine die LIBXML_NOXMLDECL, aber es funktioniert nicht - es gibt noch eine offene Bug darüber -. Oben Link am Ende der Seite sehen
Dies ist, was ich am Ende tat:
$doc = new DOMDocument('1.0');
$root = $doc->createElement('items');
$root = $doc->appendChild($root);
$title = $doc->createElement('title');
$title = $root->appendChild($title);
$text = $doc->createTextNode($item->title);
$text = $title->appendChild($text);
$items[] = $doc->saveXML($root);
Kurs bedeutet dies nicht geben Sie mir ein SimpleXML Objekt aber zumindest seine xml und nicht die Header ..