EDIT: 04/05/2022 J'ai ajouté le triage, merci à SebSauvage pour la modif ;-)
Alors j'annonce, c'est moche, mais c'est juste ce qu'il me faut à moi, soit :
Et ça nécessite : xmllint, zcat, et potentiellement cron ...
curl -s https://donnees.roulez-eco.fr/opendata/instantane | zcat > carburant.xml
ids="00000001_description1 00000002_description2 00000003_description3"
type_essence="Gazole" # Gazole, SP95, SP98, E85, E10
out_file=/var/www/html/carburant.html
prixTotal=""
NL=$'\n'
echo "<html><head></head> <meta charset="UTF-8"> <body>" > $outfile
for id in $ids;
do
i=$(echo $id | cut -d'' -f1)
place=$(echo $id | cut -d'_' -f2)
prix="$(xmllint --xpath 'string(/pdv_liste/pdv[@id='$i']/prix[@nom="'$type_essence'"]/@valeur)' carburant.xml)"
adresse="$(xmllint --xpath 'string(/pdv_liste/pdv[@id='$i']/adresse)' carburant.xml)"
ville="$(xmllint --xpath 'string(/pdv_liste/pdv[@id='$i']/ville)' carburant.xml)"
maj="$(xmllint --xpath 'string(/pdv_liste/pdv[@id='$i']/prix[@nom="Gazole"]/@maj)' carburant.xml)"
prixTotal+="$prix € a $place $ville ($maj)<br />${NL}"