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