Domanda

Ho la sensazione di essere spessa, ma ecco il mio problema:

Sto creando alberi XML dinamici usando PHP. Questi alberi descrivono gerarchie dei dipendenti, directory di file, ecc. Comprendono piccole sezioni di contenuto di una pagina Web. Il resto della pagina Web è incollato insieme da varie altre fonti che possono essere basate su SQL, o testo statico o qualche classe di presentazione speciale. Quando vado a produrre i miei alberi, trasformo l'XML in un nidificato <ul>. Vorrei che output <=> senza alcuna informazione doctype / header. Le classi DomDocument e SimpleXML di PHP non sembrano consentire questo. È l'unica opzione per eliminare le informazioni offensive dopo aver archiviato <=> in una stringa?

È stato utile?

Soluzione

Risulta se metto <xsl:output method="html" /> Non ho più prodotto un DOCTYPE automatico. Problema risolto.

Altri suggerimenti

C'è un commento su questo alla fine di questa pagina: http://www.php.net/manual/en/libxml.constants.php

SimpleXML aggiunge automaticamente un'intestazione. C'è un'opzione per disattivarlo quando si crea un oggetto XML semplice - è LIBXML_NOXMLDECL ma non funziona - c'è ancora un bug aperto su di esso - vedere il link in fondo alla pagina sopra.

Questo è quello che ho fatto alla fine:

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

Naturalmente questo non mi dà un oggetto SimpleXml ma almeno il suo xml e non ha l'intestazione ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top