Comment installer Arachnid Kodi Addon sur Firestick, Fire TV et Android
14 juillet 2020
Le tableau de bord d'Amazon vous aide à passer à la caisse pendant que vous magasinez – Review Geek
14 juillet 2020

XML
Shutterstock / VectorV

XML est compliqué, et son analyse native est assez difficile, même avec les langages de script. Heureusement, il existe un utilitaire qui peut convertir XML en JSON, ce qui est plus facile à utiliser, à la fois dans les scripts et sur la ligne de commande.

Utilisez l'utilitaire xq

Vous souhaiterez utiliser un utilitaire personnalisé pour cela, plutôt que d'essayer de l'analyser avec quelque chose comme regex, ce qui est une mauvaise idée. Il existe un utilitaire appelé xq c'est parfait pour cette tâche. Il est installé à côté yq, qui fonctionne pour YAML. Vous pouvez installer yq de pip:

pip installer yq

Sous le capot, cet utilitaire utilise jq pour gérer le travail avec JSON, vous devrez donc téléchargez le binaire, et déplacez-le quelque part sur votre CHEMIN (/ usr / local / bin / devrait fonctionner correctement).

Maintenant, vous pourrez analyser les entrées XML en les canalisant dans xq:

chat xml | xq.

le . signifie que vous voulez convertir tout le XML en JSON. Vous pouvez réellement utiliser jq syntaxe ici pour sélectionner les sous-éléments, sur lesquels vous pouvez lire notre guide.

Vous pouvez également sortir xqLa réponse en XML avec le -X drapeau:

xq -x

Cela vous permet d'utiliser jqLa syntaxe de sélection pour analyser XML tout en le conservant sous forme XML. Bien qu'il ne semble pas être en mesure de convertir dans l'autre sens, comme xq veut toujours la syntaxe XML.

Un problème avec la conversion XML en JSON

XML en JSON n'est pas une conversion parfaite: en XML, l'ordre des éléments peut être important et les clés peuvent être dupliquées. Un document comme:


  certains
  textuel
  contenu

Produirait une erreur si elle était traduite en JSON, car le une la clé existe deux fois. Donc, il est converti en un tableau, ce qui brise l'ordre. xq renvoie la sortie suivante pour ce bit de XML:

{
  "e": {
    "une": (
      "certains",
      "contenu"
    ),
    "b": "textuel"
  }
}

Ce qui est techniquement correct, mais pas idéal dans toutes les situations. Vous voudrez revérifier et vous assurer que votre conversion XML ne présente aucun problème.

//]]>