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.