opendatasicilia / tansignari

"T'ansignari e t'appeddiri"
http://tansignari.opendatasicilia.it
Creative Commons Attribution 4.0 International
18 stars 10 forks source link

estrarre nome campo e relativo alias da un file qml #253

Open pigreco opened 1 year ago

pigreco commented 1 year ago

In questo file qml (è un file che permette di memorizzare lo stile dei layer in QGIS), nella sezione <aliases> ci sono memorizzati i nomi dei campi e i relativi alias di un layer vettoriale:

image

dove:

il mio obiettivo è estrarre il field e name e creare una file csv come sotto

field name
DATA Data sopralluogo:
Comune Comune:
Localita Località:

io ho risolto manualmente usando NotePad++ con trova e sostituisci, mi piacerebbe farlo usando bash schedadicampo.zip

aborruso commented 1 year ago

Ciao @pigreco, per queste cose trovo comodo https://github.com/kislyuk/yq

Con yq faccio una query al tuo file XML, come se fosse un JSON.

<schedadicampo.qml xq . | fx

La struttura di base è questa:

image

Quindi devo esplorare la struttura del JSON sino ad arrivare agli alias:

<schedadicampo.qml xq -c '.qgis.aliases.alias[]'

In questo modo estraggo un JSONlines, ovvero un file in cui ogni riga è un oggetto json valido

image

E questo lo leggi nativamente con visidata

<schedadicampo.qml xq -c '.qgis.aliases.alias[]' | vd -f jsonl

image

E con Miller

<schedadicampo.qml xq -c '.qgis.aliases.alias[]' | mlr --j2c cat >output.csv