Pregunta

Tengo la sensación de que estoy siendo grueso, pero este es mi problema:

Estoy creando árboles XML dinámicos usando PHP. Estos árboles describen jerarquías de empleados, directorios de archivos, etc. Comprenden pequeñas secciones de contenido en una página web. El resto de la página web está pegado de varias otras fuentes que pueden estar basadas en SQL, o texto estático o alguna clase de presentación especial. Cuando voy a generar mis árboles, transformo el XML en un <ul> anidado. Me gustaría mostrar ese <=> sin ninguna información de doctype / header. Las clases DomDocument y SimpleXML de PHP no parecen permitir esto. ¿Es la única opción para quitar la información ofensiva después de almacenar el <=> en una cadena?

¿Fue útil?

Solución

Resulta que si pongo <xsl:output method="html" /> ya no envío un DOCTYPE automático. Problema resuelto.

Otros consejos

Hay un comentario sobre esto al final de esta página: http://www.php.net/manual/en/libxml.constants.php

SimpleXML agrega automáticamente un encabezado. Hay una opción para desactivarlo al crear un objeto XML simple: es el LIBXML_NOXMLDECL pero no funciona, todavía hay un error abierto al respecto; vea el enlace en la parte inferior de la página anterior.

Esto es lo que hice al final:

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

Por supuesto, esto no me da un objeto SimpleXml pero al menos es xml y no tiene el encabezado ..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top