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 :

Récupérer infos dans XML


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut Récupérer infos dans XML
    Bonjour,
    J'ai plusieurs xml qui comprend plusieurs TestLogItem comme ceci :

    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
    <TestLogItem id="2" pid="-1" nety="False">
        <Type>F6051715.gif</Type>
        <Message>
           <![CDATA[An error]]>
        </Message>
        <Time>12/5/2005 12:57:20 PM</Time>
        <Priority>
           <![CDATA[Normal]]>
        </Priority>
        <Link></Link>
        <HasPicture/>
        <TypeDescription>
           <![CDATA[Error]]>
        </TypeDescription>
        <Picture/>
        <Remarks>
           <![CDATA[]]>
        </Remarks>
    </TestLogItem>
    Ce que je veux récuperer dans ces xml, c'est seulement les TestLogItem qui ont comme valeur de TypeDescription "Error" comme ci-dessus (ou rechercher dans la balise Message, peut importe).
    Ensuite, j'aimerais rassembler toutes ces erreurs dans un seul et même fichier (mais je ne sais pas quelle format au final... xml ou html ou autre ?).

    Est-ce que c'est possible de faire ça dans un batch ?

    Merci beaucoup d'avance !

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    findstr /M /I "Error" *.xml > result.txt
    Tu auras la liste complète des fichiers contenant cette chaîne dans un fichier texte, qu'il te faudra ensuite retraiter/convertir au besoin.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    Désolé pour ma réponse tardive mais merci pour la tienne, c'est une très bonne solution mais malgré tout, je suis embêtée car au final, il y aura une grande arborescence bureautique de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [Dossier]
    |
    |- [Date+NomDuTest qui changent tout le temps et que je dois récupérer]
    |   |- [NomDuTest qui change]
    |        |- [ProjectTestItem1]
    |            |- [TestLogMainMain]
    |                |- Et là, se trouve le .xml que je veux
    | 
    |- [Autre Date+NomDuTest avec les sous-dossiers...]
    |   |- ....
    |
    Donc il faudrait récupérer les Date+NomDuTest si leur .xml contient le message "Error"...
    Mais aussi.. j'aimerais avoir le type d'erreur (contenu dans la balise Message) donc je ne sais pas si c'est faisable...

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    La même chose mais avec un "for /r" :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    for /r "DossierParent" %%I in (*.xml) do findstr /M /I "Error" %%I > %%~dpnI_result.txt
    Pas testé, mais ça devrait marcher.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #5
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    Il me dit qu'il ne peux pas ouvrir mon fichier car il doit y avoir un problème au niveau de l'adresse bureautique "Documents and Settings" avec les espaces.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FINDSTR*: Impossible d'ouvrir and
    FINDSTR*: Impossible d'ouvrir Settings\ln-f\Bureau\TestComplete_Log\unpacked\GestionPortail\ProjectTestItem1\TestLogMainMain\TestLog.xml

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Ajoutes des guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /r "DossierParent" %%I in (*.xml) do findstr /M /I "Error" "%%I" > "%%~dpnI_result.txt"
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  7. #7
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    En effet, c'était un problème de guillemets, merci !
    Maintenant, il me teste tous les fichiers xml de tous les sous-dossiers, donc pas seulement le dernier et du coup, créer un fichier texte à chaque dossier avec le chemin du fichier s'il trouve le mot clef "Error".

    Il appelle aussi le fichier texte avec le nom du fichier xml, est-il possible d'avoir le nom d'un dossier spécifique ? (1er dossier fils du dossier parent)

    Et récupérer l'intérieur de ce qu'il y a dans la balise Message du fichier xml ?

    En tout cas, merci pour l'attention que tu portes à mon sujet !

  8. #8
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par Zanthia Voir le message
    Maintenant, il me teste tous les fichiers xml de tous les sous-dossiers, donc pas seulement le dernier et du coup, créer un fichier texte à chaque dossier avec le chemin du fichier s'il trouve le mot clef "Error".
    Yep, en effet, parce que le "for" fait une recherche inconditionnelle en dehors de l'extension "xml"... Pour un filtrage plus précis, ça peut devenir relativement complexe par contre.

    Citation Envoyé par Zanthia Voir le message
    Il appelle aussi le fichier texte avec le nom du fichier xml, est-il possible d'avoir le nom d'un dossier spécifique ? (1er dossier fils du dossier parent)
    Tu changes le ""%%~dpnI_result.txt"" à ta convenance.
    Pour concaténer les résultats dans un fichier "unique", utilise ">>" à la place de ">".

    Citation Envoyé par Zanthia Voir le message
    Et récupérer l'intérieur de ce qu'il y a dans la balise Message du fichier xml ?
    Là aussi, ça va devenir nettement plus complexe : il faudrait utiliser une expression régulière passée à FINDSTR, vérifier les numéros de ligne et prendre le contenu "message" au plus grand numéro de ligne inférieur au numéro de ligne contenant le "Error".
    C'est faisable, mais ça va vraiment devenir complexe... Je te déconseille de te lancer là dedans sans connaître parfaitement les commandes "FOR", "FIND", "FINDSTR" et "IF", et de bien lire la FAQ Batch surtout, afin de voir la plupart des "trucs de base".

    Pour l'instant, je peux certes te donner des idées, mais faire le code (et le mettre au point !!) me serait très difficile sans les XML en question, sans parler du temps que ça prendrait... Il faut donc impérativement que tu maîtrises mieux le batch afin de pouvoir travailler / tester par toi-même, et avoir besoin d'aide non pas sur des détails mais bien sur l'algo général à implémenter dans ton batch.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  9. #9
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    D'accord, merci beaucoup pour ton aide en tout cas ! Je vais y réfléchir et essayer de trouver un moyen maintenant (plus simple espérons... !)

  10. #10
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    en plus de la faq tu peux t'inspirer de ce bout de code

  11. #11
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    Citation Envoyé par I'm_HERE Voir le message
    en plus de la faq tu peux t'inspirer de ce bout de code
    Ton code a l'air de correspondre à mon problème, mais j'ai du mal à le comprendre afin de le faire correspondre pour moi.
    Ai-je vraiment besoin de compteur ?
    Comment tu définis tes chemins source et dest ? Parce que tu mets "%~1" et "%~2" à la place des chemins.
    Je ne connais pas bien le batch, je débute alors là... je suis perdue

  12. #12
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    Bon en fait, je vais essayer de faire tout ça en C#, apparemment ce sera plus simple... Merci de votre aide quand même !

Discussions similaires

  1. Récupérer infos dans XML
    Par Zanthia dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 04/06/2009, 01h10
  2. Récupérer infos dans XML
    Par Zanthia dans le forum C#
    Réponses: 4
    Dernier message: 27/05/2009, 16h38
  3. [XML] [cURL] Récupérer infos dans XML
    Par zefox dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 20/11/2007, 11h33
  4. [AJAX] Récupérer infos dans fichier XML
    Par Dia_FR dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/12/2006, 15h34
  5. Récupérer infos dans fichier
    Par fara morgana dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2006, 10h29

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