Come la Conversione di XML JSON sulla Riga di Comando

0
38
Shutterstock/VectorV

XML è complicato, e analizzando in modo nativo è abbastanza difficile, anche con linguaggi di scripting. Per fortuna, c’è un programma di utilità che può convertire XML, JSON, che è più facile da lavorare, sia in script e sulla riga di comando.

Utilizzare l’Utilità xq

Ti consigliamo di utilizzare un custom made utilità per questo, piuttosto che cercare di analizzare con qualcosa come regex, che è una cattiva idea. C’è un programma di utilità chiamato xq che è perfetto per questo compito. È installato accanto yq, che lavora per YAML. È possibile installare yq dal pip:

pip install yq

Sotto il cofano, questo programma di utilità jq per gestire il lavoro con JSON, quindi avrete bisogno di scaricare i binari, e spostarlo da qualche parte sul vostro CAMMINO (/usr/local/bin/ dovrebbe funzionare bene).

Ora, sarete in grado di analizzare XML di input da tubazioni in xq:

gatto xml | xq .

L’ . operatore significa che si desidera convertire tutti XML e JSON. Si può effettivamente utilizzare jq sintassi qui per selezionare il sub-elementi, di cui potete leggere la nostra guida.

È inoltre possibile uscita xq risposta in formato XML con il flag-x:

xq -x

Questo consente di utilizzare jq la sintassi di selezione per il parsing XML, mantenendo in formato XML. Anche se non sembra essere in grado di convertire l’altro modo, come xq ha ancora voglia di sintassi di XML in.

Un Problema Con XML e JSON Conversione

XML e JSON non è una perfetta conversione in XML, l’ordine degli elementi è importante, e le chiavi possono essere duplicati. Un documento come:

<e>
<a>alcuni</a>
<b>testuale</b>
<a>contenuto</a>
</e>

Produrrebbe un errore, se tradotto a titolo definitivo per JSON, perché la chiave esiste due volte. Quindi, è convertito in un array e non rompere l’ordine. xq restituisce il seguente output per quel po ‘ di XML:

{
“e”: {
“a”: [
“alcuni”,
“contenuto”
],
“b”: “testuale”
}
}

Che è tecnicamente corretto, solo che non è l’ideale in tutte le situazioni. Si desidera controllare e assicurarsi che la vostra conversione XML non ha problemi.