Question

J'ai le sentiment d'être gros, mais voici mon problème:

Je crée des arbres XML dynamiques en utilisant PHP. Ces arbres décrivent les hiérarchies des employés, les répertoires de fichiers, etc. Ils comprennent de petites sections de contenu sur une page Web. Le reste de la page Web est collé à partir de diverses autres sources pouvant être basées sur SQL, du texte statique ou une classe de présentation spéciale. Quand je vais sortir mes arbres, je transforme le XML en un <ul> imbriqué. Je voudrais sortir ce <=> sans aucune information doctype / en-tête. Les classes DomDocument et SimpleXML de PHP ne semblent pas le permettre. La seule option permettant de supprimer les informations incriminées après le stockage de <=> dans une chaîne?

Était-ce utile?

La solution

Il s'avère que si je mets <xsl:output method="html" /> je ne produis plus de DOCTYPE automatique. Problème résolu.

Autres conseils

Il y a un commentaire à ce sujet à la fin de cette page: http://www.php.net/manual/fr/libxml.constants.php

SimpleXML ajoute automatiquement un en-tête. Il existe une option pour le désactiver lors de la création d'un objet XML simple - c'est le LIBXML_NOXMLDECL mais cela ne fonctionne pas - il y a toujours un bogue ouvert à ce sujet - voir le lien au bas de la page ci-dessus.

C’est ce que j’ai fait à la fin:

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

Bien sûr, cela ne me donne pas d'objet SimpleXml mais au moins son xml et n'a pas d'en-tête.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top