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

VBA Access Discussion :

Parcours fichier XML [AC-2016]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Par défaut Parcours fichier XML
    Bonjour,
    J'essaie de parcourir un fichier XML généré par MediaInfo afin de récupérer une information spécifique (en l'occurrence FileSize).
    Après de tout aussi nombreuses que vaines tentatives, je me tourne vers vous !
    Voici un exemple de début de fichier :
    Code XML : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?xml version="1.0" encoding="UTF-8"?>
    <MediaInfo
        xmlns="https://mediaarea.net/mediainfo"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://mediaarea.net/mediainfo https://mediaarea.net/mediainfo/mediainfo_2_0.xsd"
        version="2.0">
    <creatingLibrary version="20.08" url="https://mediaarea.net/MediaInfo">MediaInfoLib</creatingLibrary>
    <media ref="Fichier.mkv">
    <track type="General">
    <UniqueID>235647559849188122853383273563691175531</UniqueID>
    <VideoCount>1</VideoCount>
    <AudioCount>1</AudioCount>
    <FileExtension>mkv</FileExtension>
    <Format>Matroska</Format>
    <Format_Version>4</Format_Version>
    <FileSize>1368149171</FileSize>
    <Duration>4979.280</Duration>
    <OverallBitRate_Mode>VBR</OverallBitRate_Mode>
    <OverallBitRate>2198148</OverallBitRate>
    <FrameRate>25.000</FrameRate>
    <FrameCount>124482</FrameCount>
    <IsStreamable>Yes</IsStreamable>
    <File_Created_Date>UTC 2020-12-11 18:14:35.690</File_Created_Date>
    <File_Created_Date_Local>2020-12-11 19:14:35.690</File_Created_Date_Local>
    <File_Modified_Date>UTC 2020-12-02 17:33:27.360</File_Modified_Date>
    <File_Modified_Date_Local>2020-12-02 18:33:27.360</File_Modified_Date_Local>
    <Encoded_Application>Lavf55.22.100</Encoded_Application>
    <Encoded_Library>Lavf55.22.100</Encoded_Library>
    </track>
    <track type="Video">
    ...

    Et puis voici le code que je souhaite associer à un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim oXml As DOMDocument60
    Dim Valeur As String
      Set oXml = New DOMDocument60
      oXml.async = False
      If oXml.Load("C:\FichierMediaInfo.xml") Then
        For Each oNode In oXml.selectNodes("MediaInfo/track/General/FileSize")
          Valeur = oNode.Text
          MsgBox Valeur
        Next
      End If
    Je ne sais pas comment accéder au bon nœud :-\
    Merci d'avance pour votre aide et bonne journée :-)
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    Chef de projet informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Par défaut
    Bonjour !

    Je n'ai pas vraiment regardé pour résoudre le problème directement avec Access et vba mais je sais que j'avais fais ce travail à l'aide d'un programme en powershell qui récupérait l'information du nœud et créait un fichier texte avec la valeur.

    Si tu peux juste récupérer la valeur dans le fichier texte et que la solution te convient je peux t'envoyer le code powershell

    Sinon je regarderait si j'arrive à le faire avec vba.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Par défaut
    Merci Quasar8 :-)
    J'accepte volontiers ta proposition !
    Peut-être cela me permettra-t-il de voir comment récupérer « l'information du nœud » souhaité !
    Pour info, j'ai modifier mon message d'origine pour y joindre le petit fichier MediaInfo à titre d'exemple...
    Bonne journée à toi :-)

  4. #4
    Membre averti
    Homme Profil pro
    Chef de projet informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Par défaut
    Je t'ai mis mon code en pièce jointe.

    Je récupère le fichier xml d'un ftp donc il y a une boucle infinie et des paramètres pour se connecter au ftp dont tu n'as pas besoin


    J'espère que ça peut t'aider !
    Images attachées Images attachées  

  5. #5
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Bonjour,

    Le xPath n'est pas correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "MediaInfo/track[@type='General']/FileSize"

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Par défaut
    Merci moult, Arkham46 !
    J'avais effectivement commencé à trouver un embryon de réponse comme la tienne sur le Net.
    Néanmoins, je ne parviens toujours pas à mes fins :-\

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        For Each oNode In oXml.selectNodes("MediaInfo/track[@type='General']/FileSize")
          Valeur = oNode.Text
          MsgBox Valeur
        Next
    Ça ne donne rien.

    Puis j'ai essayé ça (j'ai trouvé une piste de selectSingleNode) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        For Each oNode In oXml.selectSingleNode("MediaInfo/track[@type='General']/FileSize")
          Valeur = oNode.Text
          MsgBox "Taille inscrite dans le fichier MediaInfo : " & LongToGoMoKoO(Valeur) & " (" & LongToGoMoKoO(Valeur, "Mo") & ")"
        Next
    Là, ça crie « Erreur d'exécution '424' : Objet requis »

    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print oXml.selectSingleNode("MediaInfo/track[@type='General']/FileSize")
    Là, ça crie « Erreur d'exécution '91' : Variable objet ou variable de bloc With non définie »

    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print oXml.selectSingleNode("MediaInfo/track[@type='General']/FileSize").Text
    Ça crie aussi « Erreur d'exécution '91' : Variable objet ou variable de bloc With non définie »

    Je continue à chercher et ne manquerai de vous tenir au courant, surtout une fois la solution trouvée !
    Bonne journée à tous :-)

  7. #7
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Il faut savoir quelques concepts fondamentaux à xml et comment ils sont implémentés en msxml2.domdocument.6.0.

    Voici comment c'est fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        If oXml.Load("C:\FichierMediaInfo.xml") Then
            With oXml
                .SetProperty "SelectionLanguage", "XPath"
    	    .SetProperty "SelectionNamespaces", "xmlns:ns=""https://mediaarea.net/mediainfo"""
            End With
            For Each oNode In oXml.SelectNodes("/ns:MediaInfo/ns:media/ns:track[@type='General']/ns:FileSize")
                Valeur = oNode.Text
                MsgBox Valeur
            Next
        End If

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Par défaut
    Merci tsuji, cela fonctionne parfaitement :-)
    Je confirme que, me concernant, il me manque « quelques concepts fondamentaux à xml » ^^
    Heureusement que le partage de connaissance peut parfois combler des lacunes, et je te remercie sincèrement.
    Je te souhaite une très bonne journée :-)

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

Discussions similaires

  1. Problème parcours fichier xml.
    Par imen1986 dans le forum APIs
    Réponses: 9
    Dernier message: 17/05/2010, 02h34
  2. Parcours fichier xml
    Par oclone dans le forum C#
    Réponses: 3
    Dernier message: 13/05/2009, 12h08
  3. Qt + parcours fichier xml
    Par sofuzion dans le forum Qt
    Réponses: 9
    Dernier message: 27/03/2009, 15h16
  4. [XPATH] parcours fichier xml : performances
    Par loic72 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 25/02/2008, 17h01
  5. Parcours fichier xml
    Par Christophe Charron dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/05/2006, 21h37

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