¿Hay alguna manera de aumentar el tamaño de sangría de la propiedad DOMDocument formatOutput de PHP? En este momento sangra cada nodo 2 espacios. Me gustaría que sea una pestaña o 4 espacios.¿Hay alguna manera de aumentar el tamaño de sangría de la propiedad DOMDocument formatOutput de PHP?
¿Hay alguna manera de aumentar el tamaño de sangría de la propiedad DOMDocument formatOutput de PHP?
Respuesta
Podría ser posible cambiar la cadena de sangrado en libxml, pero que yo sepa no se puede alterar la sangría que DOM usa. Sin embargo, es posible para XMLWriter.
Como alternativa, se puede usar ordenado a prettyprint el XML:
$dom = new DOMDocument;
$dom->preserveWhiteSpace = TRUE;
$dom->loadXml('<root><foo><bar> baz </bar></foo></root>');
$tidy = tidy_parse_string($dom->saveXml(), array(
'indent' => TRUE,
'input-xml' => TRUE,
'output-xml' => TRUE,
'add-xml-space' => FALSE,
'indent-spaces' => 4
));
$tidy->cleanRepair();
echo $tidy;
pero tenga en cuenta que esto comporta peculiar en el caso anterior. Elimina los espacios en el elemento de la barra a menos que abones un xml:space="preserve"
en la etiqueta de la barra. Cuando lo haga, mantendrá los espacios pero también colocará líneas nuevas antes y después. Tienes que jugar con él para ver si se ajusta a tu problema. Ver Tidy docs
Esto no es una solución muy agradable, ya que depende de saber que el formato se prefija con espacios dobles:
preg_replace_callback('/^(+)</m', function($a) {
return str_repeat(' ',intval(strlen($a[1])/2) * 4).'<';
}, $doc->saveXML());
Sustituye cada muesca con 4 espacios. O puede eliminar el *4
y usar "\n"
como el carácter repetitivo.
¡Gracias! Esto es exactamente lo que necesitaba para cambiar la sangría de 2 espacios en pestañas, cambié el retorno a esto: 'return str_repeat (" \ t ", intval (strlen ($ a [1])/2)). '<';' – Kus
- 1. Sangría con DOMDocument en PHP
- 2. ¿Hay alguna manera de obtener el tamaño de una variable de PHP en bytes?
- 3. ¿Hay alguna manera de determinar el tamaño físico del monitor?
- 4. ¿Hay alguna manera de hacer la validación XSD de una secuencia XML en PHP
- 5. ¿Aumentar el tamaño de letra en Firebug?
- 6. ¿Hay alguna manera rápida de disminuir la sangría de varias líneas en Python?
- 7. ¿Hay alguna manera de emular la herramienta 'whois' utilizando php?
- 8. ¿Hay alguna manera de aumentar el término original más al usar sinónimos de Solr?
- 9. PhoneGap: ¿Hay alguna manera de evitar que el teclado cambie el tamaño de la vista?
- 10. ¿Alguna manera de reducir el tamaño de los textos?
- 11. ¿Hay alguna manera de desactivar la sangría automática al pegar en Xcode 4?
- 12. Android: aumentar el tamaño de la pila de llamadas
- 13. PHP DOMDocument obtener el atributo de etiqueta
- 14. ¿Hay alguna manera de cambiar el tamaño de la fuente del título en una hoja UIActionSheet?
- 15. ¿Hay alguna manera de cambiar automáticamente el tamaño de las imágenes de MediaWiki dependiendo del tamaño de la pantalla?
- 16. ¿Hay alguna manera de anular el registro de una propiedad de dependencia de WPF?
- 17. ¿Hay alguna forma de averiguar el tamaño/tamaño de las tablas de la base de datos?
- 18. ¿Hay alguna manera de omitir el parámetro?
- 19. Aumentar el tamaño de la lista tipo bullet tipo
- 20. ¿Cómo puedo aumentar el tamaño de la pila en Python?
- 21. ¿Hay alguna manera de mantener intactas las entidades al analizar html con DomDocument?
- 22. ¿Hay alguna manera de "reiniciar" la JVM?
- 23. ¿hay alguna manera de "excluir" un archivo con PHP?
- 24. ¿Hay alguna manera de integrar OpenCV con PHP?
- 25. ¿Cómo aumentar el tamaño de la historia del portapapeles PHPStorm?
- 26. PHP: ¿hay alguna manera de ver caracteres "invisibles" como \ n
- 27. ¿Hay alguna manera de verificar el tamaño de pila disponible antes de una llamada recursiva? (C#)
- 28. ¿Hay alguna limitación de tamaño para la publicación de Ajax?
- 29. PHP DOMDocument Namespaces
- 30. ¿Cómo aumentar el tamaño de la pila de Java?
¿Hay alguna manera de cambiar esto en algún lugar en un archivo de configuración? No tiene que ser en tiempo de ejecución. – ThinkingInBits
@Thinking Que yo sepa, no hay forma de configurar esto desde PHP. – Gordon