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

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 comando, puede pensar que es ilegible. Sin embargo, así es como se estructura XML, y la mejor opción es analizarlo utilizando las herramientas de línea de comandos disponibles. Si bien la mayoría cree que el análisis XML es un desafío, esta guía desglosará la complejidad al introducir dos herramientas fáciles para aliviar su análisis 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 representa un lenguaje de marcado extensible. Funciona como un formato de archivo y un lenguaje de marcado, haciéndolo útil para la transmisión, el almacenamiento y otras funcionalidades. El principal inconveniente con XML es su dificultad de leer debido a su estructura, y a menos que tenga una forma limpia de analizarla, una sola línea XML puede ser fácilmente confuso.

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

Método 1. Usando el comando xmllint

El XMLLInt es un formador XML confiable y una herramienta de validación. Para usar la herramienta, debe instalar el libxml2-uTils paquete.

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

$ xmllint [opciones] xml-archivo

Lo primero que cuando analiza su archivo XML es validar su XML está bien escrito. Para esto, use el siguiente comando y agregue opcionalmente el -sin salida Para evitar imprimir el contenido del XML pero solo validelo:

$ xmllint -no nombre de archivo

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

Recuerde la salida que fue difícil de leer antes? Puede analizarlo usando xmllint y obtener una salida bonita en su línea de comando. Para eso, usa el -formato argumento y tenga en cuenta 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 el sangría. Sin embargo, debe crear una variable de entorno, Xmllint_indent, y establezca la cantidad de espacios que desea usar.

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

$ Export 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 -nobleks argumento, que elimina incluso las nuevas líneas.

$ xmllint -no 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. Usando el comando xmlstarlet

El XMLStarlet es otra herramienta confiable para analizar XML a través de la línea de comando. Tiene muchas opciones que puede usar para transformar, analizar, consultar o validar su archivo XML. Debe instalar la herramienta de línea de comando para usarla y en Ubuntu, usar el comando proporcionado 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 comunes.

A vista un archivo XML, use el siguiente comando:

Nombre de archivo de $ xmlstarlet

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

$ XMLSTARLET VAL FileName

A Seleccionar datos con xmlstarlet, use el seleccionar opción y especifique la ruta al nodo. En nuestro archivo XML, use el siguiente comando para seleccionar la dirección:

$ xmlstarlet select --lemplate --Value-of/clientes/cliente/dirección-NL test3.xml

En el comando anterior, el -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 en que puede especificar las opciones de XMLStarlet para funcionar con su archivo XML, y las opciones integrales están en la página del hombre para la línea de comando.

Conclusión

Analizar los archivos XML no debería ser desafiante cuando se usa Linux. Disfrutará trabajando con archivos XML si tiene las herramientas de línea de comando correctas para hacer el trabajo. Esta guía se centró en dos opciones de línea de comandos para analizar archivos XML. Pruébalos y vea cuál es más fácil de usar.