not leer found example childnodes php domdocument

leer - php domdocument getelementsbytagname



Salida de PHP DomDocument sin<? Xml version="1.0" encoding="UTF-8"?> (3)

Creo que usar DOMDocument es una solución universal para archivos XML válidos:

Si tienes un XML ya cargado en una variable:

$t_xml = new DOMDocument(); $t_xml->loadXML($xml_as_string); $xml_out = $t_xml->saveXML($t_xml->documentElement);

Para el archivo XML del disco:

$t_xml = new DOMDocument(); $t_xml->load($file_path_to_xml); $xml_out = $t_xml->saveXML($t_xml->documentElement);

Este comentario ayudó: http://www.php.net/manual/en/domdocument.savexml.php#88525

¿Hay una opción con DomDocument para eliminar la primera línea:

<?xml version="1.0" encoding="UTF-8"?>

La creación de instancias de clase lo agrega automáticamente a la salida, pero ¿es posible deshacerse de él?


Puede utilizar el búfer de salida para eliminarlo. Un poco de un hack pero funciona.

ob_start(); // dom stuff $output = ob_get_contents(); ob_end_clean(); $clean = preg_replace("/(.+?/n)/","",$output);


Si desea generar HTML, use la función saveHTML() . Automáticamente evita una gran cantidad de expresiones XML y maneja correctamente las expresiones HTML cerradas / no cerradas.

Si desea generar XML, puede usar el hecho de que DOMDocument es un DOMNode (a saber: ''/'' en la expresión XPath), por lo tanto, puede usar las llamadas a la API de DOMNode para iterar sobre nodos secundarios y llamar a saveXML() en cada nodo secundario . Esto no genera la declaración XML y genera todos los demás contenidos XML correctamente.

Ejemplo:

$xml = get_my_document_object(); foreach ($xml->childNodes as $node) { echo $xml->saveXML($node); }