comment lire un fichier xml linux

J'ai un fichier xml ci-dessous, j'ai besoin de "fr" à l'aide de certains de commande unix.

        <void method="put">
            <string>LANGUAGE</string>
            <string>en</string>
        </void>    

à l'aide de commande ci-dessous (obtenu à partir d'un lien dans google),

sed -n '/string/{s/.*<string>//;s/<\/string.*//;p;}' Locale.xml

Je suis sortie comme

LANGUAGE
en

j'ai donc utilisé

sed -n '/string/{s/.*<string>//;s/<\/string.*//;p;}' Locale.xml | tail -1

Mais est-il une option dans sed en qui je peux avoir une deuxième valeur seulement?

  • À l'aide d'un analyseur XML pourrait être une meilleure option.
  • exact le cas d'utilisation de xpath. si vous avez besoin de l'envelopper avec un script shell, vous pouvez utiliser l'outil xmllint avec --xpath. Je ne peux pas proposer d'autres avant de voir votre structure du document. N'essayez pas d'utiliser awk/sed/grep sur un xml, si vous voulez que votre script pour être stable. eh bien, vous pouvez les utiliser même si, pour un rapide et sale coup/test.
  • XML n'est pas un langage régulier, ce qui signifie que vous ne pouvez pas la hauteur de ses structures avec des expressions régulières efficacement.
  • Voir Grep et Sed Équivalent pour XML Ligne de Commande de Traitement
InformationsquelleAutor user2800089 | 2014-04-28