IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

parser fichier xml [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre éprouvé
    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 212
    Points
    1 212
    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 émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Salut,

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

  3. #3
    Membre éprouvé
    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 212
    Points
    1 212
    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
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    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 : 1 478
    Points : 3 768
    Points
    3 768
    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
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    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 : 1 478
    Points : 3 768
    Points
    3 768
    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
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  6. #6
    Membre éprouvé
    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 212
    Points
    1 212
    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 Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 19/06/2006, 09h01
  4. [XML] [EXPAT] Parser fichier XML
    Par Ben42 dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 17/02/2006, 14h08
  5. [XSL] Parser fichier xml : erreurs + incompréhensions
    Par totobouchon dans le forum Bibliothèques et frameworks
    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