p
u
b
l
i
c
i
t
é
publicité

Discussion: parser fichier xml [Batch]

  1. #1
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : avril 2010
    Messages : 394
    Points : 1 180
    Points
    1 180

    Par défaut parser fichier xml

    Bonjour,

    Ce que j'aimerais faire, c'est, à partir d'un script .bat, aller récupérer une valeur présente dans un fichier xml. Par exemple, récupérer uniquement "ma valeur" ci-dessous :

    <toto>
    <tata>
    <coucou>ma valeur</coucou>
    <tata>
    <tonton>
    <coucou>une autre valeur</coucou>
    <tonton>
    </toto>

    Connaissant très peu les scripts windows, et n'ayant pas trouvé grand-chose d'utiles lors de mes premières recherches, est-ce que quelqu'un ici pourrait m'aider sur le sujet ?

    Merci.

    Mako.

  2. #2
    Membre Expert
    Inscrit en
    avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 1 495
    Points : 2 231
    Points
    2 231

    Par défaut

    Salut,

    Pour ça utilise la commande findstr associée à for, mais le mieux c'est l'utilitaire sed...

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : avril 2010
    Messages : 394
    Points : 1 180
    Points
    1 180

    Par défaut

    mais le mieux c'est l'utilitaire sed...
    Je ne veux rien avoir à installer sur ma machine, je dois donc faire avec ce qui est nativement présent.

    J'ai regardé la commande findstr, mais je dois avouer galérer pas mal pour réussir à l'utiliser...

    Comme je l'ai noté dans mon exemple précédent, le nom de la balise que je recherche n'est pas unique, il faut que je sache où j'en suis dans le fichier. Ce que je veux faire, c'est donc :

    - on attend de trouver le premier marqueur : "tata" ;
    - si on l'a trouvé, on attend de trouver le second marqueur : "coucou" ;
    - et là, on retourne ce qu'il y a de compris entre les balises <coucou> et </coucou> ;

    Pour le moment, ça ressemble à ça, mais deux points me bloquent :
    - l'utilisation du findstr (et les doc sur lesquelles je suis tombé étaient loin d'être claires) ;
    - les tests pour savoir si on a trouvé la première/seconde balise ;

    Le code (bancal) en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    set valeurRecherchee=false
    set trouve=false
    set baliseDebut="<tata>"
    set baliseRecherchee="<coucou>"
    
    for /f "delims=" %%i in (monFichier.xml) do (
      if %trouve%==false (
        if %%i==%baliseDebut% ( // -> ne semble pas fonctionner
          set trouve=true
        )
      )
      if %trouve%==true (
        if %%i==%baliseRecherchee% ( // -> ne semble pas fonctionner
          set valeurRecherchee=%%i // -> là il faudrait le findstr
          goto end
        )
      )
    )
    :end
    En tout cas, merci de m'aider !

    Mako.

  4. #4
    Expert Confirmé
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    janvier 2013
    Messages
    973
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2013
    Messages : 973
    Points : 2 632
    Points
    2 632

    Par défaut

    Salut Mako 5013,

    Tes 2 marqueurs sont sur la même ligne

    style : tutu marqueur1 titi tata toto marqueur2 tete

    ou a des lignes différentes

    tutu
    marqueur1
    titi
    tata
    marqueur2
    tete

    ou encore

    tete tutu maqueur1
    tata titi toto
    tita marqueur2 tata

  5. #5
    Expert Confirmé
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    janvier 2013
    Messages
    973
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2013
    Messages : 973
    Points : 2 632
    Points
    2 632

    Par défaut

    Salut mako,

    je 'envoie sur cette discussion ou j'ai écris le code pour une requête similaire
    à la tienne
    http://www.developpez.net/forums/d12...batch-windows/

    Amicalement

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : avril 2010
    Messages : 394
    Points : 1 180
    Points
    1 180

    Par défaut

    Mes marqueurs étaient effectivement à des lignes différentes.

    J'ai testé ce que tu proposais sur l'autre discussion, et après adaptation à mon problème, cela fonctionne nickel.

    Merci beaucoup pour l'aide.

    Mako.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. parser fichier xml
    Par debutant_linux dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 24/10/2007, 18h44
  2. [glib] parser fichier xml
    Par .:dev:. dans le forum C
    Réponses: 10
    Dernier message: 18/07/2006, 00h00
  3. [DOM] Erreur parser fichier xml avec caractère spéciaux
    Par turcotm dans le forum XML
    Réponses: 4
    Dernier message: 19/06/2006, 09h01
  4. [EXPAT] Parser fichier XML
    Par Ben42 dans le forum XML
    Réponses: 12
    Dernier message: 17/02/2006, 14h08
  5. [XSL] parser fichier xml : erreurs + incompréhensions
    Par totobouchon dans le forum XSL & XSLT
    Réponses: 1
    Dernier message: 19/07/2005, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo