Estoy usando DOMDocument
para generar un nuevo archivo XML y me gustaría que el resultado del archivo se sancione muy bien para que sea fácil de seguir para un lector humano.Sangría con DOMDocument en PHP
Por ejemplo, cuando DOMDocument
salidas de estos datos:
<?xml version="1.0"?>
<this attr="that"><foo>lkjalksjdlakjdlkasd</foo><foo>lkjlkasjlkajklajslk</foo></this>
Quiero que el archivo XML sea:
<?xml version="1.0"?>
<this attr="that">
<foo>lkjalksjdlakjdlkasd</foo>
<foo>lkjlkasjlkajklajslk</foo>
</this>
He estado buscando en busca de respuestas, y todo lo que yo ve encontrado parece decir para tratar de controlar el espacio en blanco de esta manera:
$foo = new DOMDocument();
$foo->preserveWhiteSpace = false;
$foo->formatOutput = true;
Pero esto no parece hacer nada. Quizás esto solo funciona al leer XML? Tenga en cuenta que estoy tratando de escribir nuevos documentos.
¿Hay algo incorporado en DOMDocument
para hacer esto? ¿O una función que puede lograr esto fácilmente?
no estoy seguro de cuál es la pregunta. El código que muestre dará el resultado que está solicitando. Prueba: http://codepad.org/4UGyRspx y http://codepad.org/bLTOFQrp - ¿Estás preguntando sobre el nivel de sangría, p. la cantidad de espacios usados? – Gordon
Hay una buena función directa (basado en expresiones regulares) aquí: [formatos XML con PHP] (http://recurser.com/articles/2007/04/05/format-xml-with-php/) – Tomalak
relacionados como siempre que la sangría se refiere a: [en la conversión de la sangría con preg_replace (sin devolución de llamada)] (http://stackoverflow.com/questions/8616594/converting-indentation-with-preg-replace-no-callback) – hakre