Cómo analizar XML en la línea de comandos de Linux

A diferencia de otros tipos de archivos, XML está estructurado y, cuando imprime su contenido en la línea de comandos, puede pensar que es ilegible. Sin embargo, así es como está estructurado XML, y la mejor opción es analizarlo utilizando las herramientas de línea de comandos disponibles. Si bien la mayoría cree que analizar XML es un desafío, esta guía desglosará la complejidad al presentar dos herramientas sencillas para facilitar el análisis de XML en la línea de comandos de Linux. Vamos a ver.

Dos formas de analizar XML en la línea de comandos de Linux

XML significa Lenguaje de marcado extensible. Funciona como un formato de archivo y un lenguaje de marcado, lo que lo hace útil para la transmisión, el almacenamiento y otras funcionalidades. El principal inconveniente de XML es su dificultad de lectura debido a su estructura y, a menos que tenga una forma clara de analizarlo, una sola línea XML puede resultar confusa.

Echa un vistazo a la siguiente imagen. Comprender lo que significa puede ser difícil, pero veremos cómo solucionarlo y analizarlo con dos herramientas.

Método 1. Usar el comando xmllint

El xmllint es una herramienta fiable de validación y formador de XML. Para usar la herramienta, debe instalar el paquete libxml2-utils .

Con xmllint instalado, procedamos y analicemos nuestro archivo XML. Aquí está la siguiente sintaxis para usar xmllint:

$ xmllint [ opciones ] archivo xml

Lo primero al analizar su archivo XML es validar que su XML esté bien escrito. Para esto, use el siguiente comando y, opcionalmente, agregue el –noout para evitar imprimir el contenido del XML, pero solo validarlo:

$ xmllint –sin nombre de archivo

Si tiene un error en su archivo XML, obtendrá un resultado de error en su terminal, como se muestra en el siguiente ejemplo:

¿Recuerdas la salida que era difícil de leer antes? Puede analizarlo usando xmllint y obtener una salida bonita en su línea de comando. Para eso, use el argumento –formato y observe qué tan bien formateado se imprimirá su archivo XML.

Con xmllint, también puede cambiar la sangría de su archivo y elegir cuántos espacios desea para la sangría. Sin embargo, debe crear una variable de entorno, XMLLINT_INDENT, y establecer la cantidad de espacios que desea usar.

Por ejemplo, si necesitáramos cinco espacios, el comando para exportar la variable de entorno sería:

$ exportar XMLLINT_INDENT = «“

Ahora, su XML se formateará con los espacios de sangría especificados.

Si nota que su archivo XML tiene espacios innecesarios, puede eliminarlos usando el argumento – noblanks , que elimina incluso las líneas nuevas.

$ xmllint –noblanks nombre de archivo

Notará que eliminar los espacios desorientará el formato de su XML, pero puede usar esta opción cuando necesite reducir el tamaño de su documento XML.

Método 2. Usar el comando XMLStarlet

XMLStarlet es otra herramienta fiable para analizar XML a través de la línea de comandos. Tiene muchas opciones que puede usar para transformar, analizar, consultar o validar su archivo XML. Debe instalar la herramienta de línea de comandos para usarla y en Ubuntu, use el comando que se proporciona a continuación:

$ sudo apt install xmlstarlet

Con XMLStarlet, puede extraer fácilmente datos de su XML y realizar otras actividades simples

Todo lo que puede hacer con la herramienta de línea de comandos está disponible en su página de ayuda. Veamos varios ejemplos de uso común.

Para ver un archivo XML, use el siguiente comando:

$ xmlstarlet formato de nombre de archivo

Si necesita validar el XML, el comando se proporciona a continuación:

$ xmlstarlet val nombre de archivo

Para seleccionar datos con XMLStarlet, use la opción de selección y especifique la ruta al nodo. En nuestro archivo XML, use el siguiente comando para seleccionar la dirección:

$ xmlstarlet select –template –value-of / clientes / cliente / dirección –nl test3.xml

En el comando anterior, –nl especifica agregar una nueva línea después de la salida. Puede modificar la ruta para obtener datos específicos en el XML

Hay varias formas de especificar las opciones de XMLStarlet para que funcionen con su archivo XML, y las opciones completas se encuentran en la página del manual para la línea de comando.

Conclusión

El análisis de archivos XML no debería ser un desafío cuando se usa Linux. Disfrutará trabajando con archivos XML si tiene las herramientas de línea de comandos adecuadas para realizar el trabajo. Esta guía se centró en dos opciones de línea de comandos para analizar archivos XML. Pruébelos y vea cuál le resulta más fácil de usar.