Comment analyser XML sur la ligne de commande Linux

Comment analyser XML sur la ligne de commande Linux
Contrairement à d'autres types de fichiers, XML est structuré et lorsque vous imprimez son contenu sur la ligne de commande, vous pouvez penser qu'il est illisible. Cependant, c'est ainsi que XML est structuré, et la meilleure option est de l'analyser en utilisant les outils de ligne de commande disponibles. Alors que la plupart croient que l'analyse du XML est difficile, ce guide décompose la complexité en introduisant deux outils faciles pour faciliter votre analyse XML sur la ligne de commande Linux. Nous allons jeter un coup d'oeil.

Deux façons d'analyser le XML sur la ligne de commande Linux

Xml signifie un langage de balisage extensible. Il fonctionne comme un format de fichier et un langage de balisage, ce qui le rend utile pour la transmission, le stockage et d'autres fonctionnalités. L'inconvénient principal avec XML est sa difficulté à lire en raison de sa structure, et à moins que vous n'ayez un moyen propre de l'analyser, une seule ligne XML peut facilement être déroutante.

Jetez un œil à l'image suivante. Comprendre ce que cela signifie peut être difficile, mais nous verrons comment résoudre ce problème et l'analyser en utilisant deux outils.

Méthode 1. Utilisation de la commande xmllint

Le xmllint est un formateur XML fiable et un outil de validation. Pour utiliser l'outil, vous devez installer le libxml2-utils emballer.

Avec XMLINT installé, procédons et analysons notre fichier XML. Voici la syntaxe suivante pour l'utilisation de xmllint:

$ xmllint [Options] XML-FILE

La première chose lorsque l'analyse de votre fichier XML est de valider votre XML est bien écrit. Pour cela, utilisez la commande suivante et ajoutez éventuellement le -noout Pour éviter d'imprimer le contenu du XML mais de le valider uniquement:

$ xmllint - nom de fichier

Si vous avez une erreur dans votre fichier XML, vous obtiendrez une sortie d'erreur sur votre terminal, comme indiqué dans l'exemple suivant:

Rappelez-vous la sortie qui était difficile à lire avant? Vous pouvez l'analyser à l'aide de XMllint et obtenir une jolie sortie sur votre ligne de commande. Pour cela, utilisez le -format Argument et notez dans quelle mesure votre fichier XML est bien formaté.

Avec Xmllint, vous pouvez également modifier l'indentation de votre fichier et choisir le nombre d'espaces que vous souhaitez pour le retrait. Cependant, vous devez créer une variable d'environnement, Xmllint_indent, et définir le nombre d'espaces que vous souhaitez utiliser.

Par exemple, si nous avions besoin de cinq espaces, la commande pour exporter la variable d'environnement serait:

$ export xmllint_indent = ""

Maintenant, votre XML sera formaté avec les espaces d'indentation spécifiés.

Si vous remarquez que votre fichier XML a des espaces inutiles, vous pouvez les supprimer en utilisant le -noblanks argument, qui élimine même les nouvelles.

$ xmllint - nom de fichier de noblanks

Vous notez que la suppression des espaces désorientera le format de votre XML, mais vous pouvez utiliser cette option lorsque vous devez réduire la taille de votre document XML.

Méthode 2. Utilisation de la commande xmlstarlet

Le XMLStarlet est un autre outil fiable pour analyser le XML via la ligne de commande. Il a beaucoup d'options que vous pouvez utiliser pour transformer, analyser, interroger ou valider votre fichier XML. Vous devez installer l'outil de ligne de commande pour l'utiliser et sur Ubuntu, utilisez la commande fournie ci-dessous:

$ sudo apt install xmlstarlet

Avec XMLStarlet, vous pouvez facilement extraire les données de votre XML et effectuer d'autres activités simples

Tout ce que vous pouvez faire avec l'outil de ligne de commande est disponible sur sa page d'aide. Voyons plusieurs exemples d'utilisation courants.

Pour voir un fichier XML, utilisez la commande suivante:

Nom de fichier de format de format xmlstarlet

Si vous aviez besoin de valider Le XML, la commande est fournie ci-dessous:

$ xmlstarlet Val Nom de fichier

Pour Sélectionner des données avec xmlstarlet, utilisez le sélectionner option et spécifiez le chemin vers le nœud. Dans notre fichier XML, utilisez la commande suivante pour sélectionner l'adresse:

$ xmlstarlet SELECT - Template - Value-of / Clients / Customer / Address --nl Test3.xml

Dans la commande précédente, le -nl Spécifie pour ajouter une nouvelle ligne après la sortie. Vous pouvez modifier le chemin d'accès pour obtenir des données spécifiques dans le XML

Il existe différentes façons de spécifier les options XMLStarlet pour travailler avec votre fichier XML, et les options complètes sont sur la page de l'homme pour la ligne de commande.

Conclusion

Analyser les fichiers XML ne devrait pas être difficile lors de l'utilisation de Linux. Vous apprécierez de travailler avec des fichiers XML si vous avez les bons outils de ligne de commande pour faire le travail. Ce guide s'est concentré sur deux options de ligne de commande pour l'analyse des fichiers XML. Essayez-les et voyez ce que vous trouvez plus facile à utiliser.