Actualmente estoy trabajando con archivos XML que contienen elementos con una larga lista de atributos. Cuando intento volver a sangrar todo el archivo XML usando xmllint --format myfile.xml
solo los elementos con sangría, los atributos aún permanecen en una sola línea.
¿Existe algún programa (línea de comandos, Windows o GNU/Linux) que admita el reformateo de XML, incluidos los atributos?
Por ejemplo un XML como:
<root>
<node attribute1="some long attribute value" attribute2="some long attribute value" attribute3="..."/>
</root>
debe tener una salida similar a:
<root>
<node attribute1="some long attribute value"
attribute2="some long attribute value"
attribute3="..."/>
</root>
Respuesta1
Si bien su búsqueda bien intencionada de una "herramienta de línea de comandos" está perfectamente bien, desafortunadamente creo que cualquier solución verdaderamente viable a este problema implicará escribir algo de código usted mismo, o al menos aprovechar el código existente (como un analizador XML/ generador). En los comentarios, he publicado algunas cosas que puedes probar y que pueden darte o no el estilo de formato exacto que estás buscando. Si está muy cerca pero no del todo, lo mejor que puede hacer probablemente sea editar el código fuente del programa que "casi" llega allí. Por supuesto, si no sabes ningún lenguaje de programación, eso puede ser un punto muerto.
Llamo a todas estas soluciones "posibles" porque, incluso si formatean los atributos de la forma deseada, podrían formatear algo.demásde alguna manera tunoquieres, y luego vuelves al punto de partida. Como no indicaste todos tus requisitos de transformación, solo puedo adivinar cuál de estos sería aceptable para ti, por lo que tendrás que probarlos uno por uno hasta que encuentres algo que funcione o lo crees tú mismo. aprovechando el código existente y escribiendo un programa pequeño.
Posibles soluciones sin programación
GUI
Eclipseeditor de código fuente XML
Antes bonita: Después bonita:
Opciones personalizables para cambiar las reglas de formato:
Línea de comando
- XML ordenado(última actualización en 2005; puede estar obsoleto)
- Dom4j(incluido aquí porque la "programación" ya se le proporciona en su totalidad en la respuesta SO)
Posibles soluciones con programación
- Escriba su propio programa personalizado utilizando uno de los siguientes:
- Jerces
- Dom4j
- Saxófono
- libxml
- Las bibliotecas subyacentes que Eclipse utiliza para analizar XML, lo que probablemente le permitiría formatear XML mediante programación y configurar las reglas de formato personalizadas como se ve en las opciones de Eclipse.
... que procesa el XML exactamente de la manera que usted desea.
Ver tambiénesteEntonces pregunta.
Por último, tenga en cuenta que si desea ayuda de la comunidad para profundizar en la escritura de un programa que involucre una de estas tecnologías, debe hacer la pregunta específica paraunoanalizador/generador/biblioteca XML elegido enDesbordamiento de pilaynoen Superusuario. Aquí tratamos principalmente preguntas sobre el uso de programas existentes.