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

MATLAB Discussion :

Récupérer des données à partir de fichier XML [Débutant]


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Finlande

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Récupérer des données à partir de fichier XML
    Bonsoir à tous,
    je simule le trafic sur une portion de route avec un logiciel (SUMo). En sortie j'ai un fichier xml qui me regroupe les positions/vitesses des véhicules (flowId.runningNumber.[indice]) à chaque timestep (1s). Au début on a peu de voitures et on finit à 17.

    J'aimerais regrouper les données par voiture et par paramètre (x,y et speed) pour tracer des graphs. J'ai fouillé des forums sans trouver quelque chose de semblable dans la mesure où mes paramètres sont plus mélangés que ce qu'on trouve dans les topics similaires.
    L'aide de matlab ne m'a pas aidé d'avantage (fscanf, strmatch et autres). Je ne vois surtout pas comment procéder.

    Vista, Matlab R2010a

    Merci,
    Howyd
    [1er post]
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il ne fallait pourtant pas chercher bien loin
    Derniere discussion de la rubrique Contribuez:
    Gestion des fichiers XML avec la XML toolbox

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    La solution de Winjerome est correcte mais vu la relative simplicité de cette exemple, je me permets de montrer une autre alternative utilisant les transformations XSLT.

    Le "simple" fichier XSL test.xsl suivant :
    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
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
        <xsl:output method="text" encoding="UTF-8"/>
     
        <xsl:variable name="sep" select="' '"/>
     
        <xsl:template match="/">
     
            <xsl:for-each select="/vehicle-type-probes/timestep">
                <xsl:value-of select="@time"/>
                <xsl:text>&#xa;</xsl:text>
                <xsl:for-each select="./vehicle">
                    <xsl:value-of select="substring(@id,22)"/><xsl:value-of select="$sep"/>
                    <xsl:value-of select="@lane"/><xsl:value-of select="$sep"/>
                    <xsl:value-of select="@pos"/><xsl:value-of select="$sep"/>
                    <xsl:value-of select="@x"/><xsl:value-of select="$sep"/>
                    <xsl:value-of select="@y"/><xsl:value-of select="$sep"/>
                    <xsl:value-of select="@speed"/><xsl:text>&#xa;</xsl:text>
                </xsl:for-each>
            </xsl:for-each>
     
        </xsl:template>
     
    </xsl:stylesheet>

    utilisé avec la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xslt('donnees.xml','test.xsl','test.txt');
    génère le fichier texte test.txt suivant :
    0.00
    0 ab_0 6.60 6.60 23.35 0.00
    1.00
    0 ab_0 8.04 8.04 23.35 1.44
    2.00
    0 ab_0 12.02 12.02 23.35 3.98
    3.00
    0 ab_0 17.84 17.84 23.35 5.82
    1 ab_0 6.60 6.60 23.35 0.00
    4.00
    0 ab_0 25.93 25.93 23.35 8.09
    1 ab_0 8.23 8.23 23.35 1.63
    5.00
    0 ab_0 36.62 36.62 23.35 10.69
    1 ab_0 11.50 11.50 23.35 3.27
    6.00
    0 ab_0 49.32 49.32 23.35 12.70
    1 ab_0 16.76 16.76 23.35 5.26
    2 ab_0 6.60 6.60 23.35 0.00
    7.00
    0 ab_0 62.07 62.07 23.35 12.75
    1 ab_0 24.54 24.54 23.35 7.78
    2 ab_0 8.86 8.86 23.35 2.26
    8.00
    0 ab_0 75.29 75.29 23.35 13.22
    1 ab_0 34.86 34.86 23.35 10.32
    2 ab_0 12.82 12.82 23.35 3.97
    9.00
    0 ab_0 88.11 88.11 23.35 12.82
    1 ab_0 46.56 46.56 23.35 11.70
    2 ab_0 18.57 18.57 23.35 5.74
    3 ab_0 6.60 6.60 23.35 0.00
    10.00
    0 ab_0 101.96 101.96 23.35 13.85
    ...
    (contenu volontairement tronqué ici, voir le fichier complet attaché)

    On revient donc à une méthode plus classique de lecture de fichier texte.

    Le format que je donne ici est une simple idée.
    On peut ajouter des délimiteurs spécifiques afin de se faciliter la tâche de relecture.

    Voir les ressources XML de developpez.com pour plus d'infos (tutoriels, forums)
    Fichiers attachés Fichiers attachés
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Finlande

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci à vous deux.
    Suite au premier message j'ai cherché des toolboxes sur Internet. Je suis parti pour travailler avec xml_io_tools. Comme je ne connaissais pas (et ne connais pas plus) le xml je voulais le faire avec MATLAB.Je vais poursuivre ma version mais je garde la réponse de Dut sous la main.

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

Discussions similaires

  1. Récupérer des données dans un fichier .xml
    Par Enroy dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/01/2013, 08h27
  2. récupérer des donnée dans un fichier xml
    Par lecompte81 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 13/09/2011, 10h00
  3. Récupérer des données depuis un fichier XML
    Par mox20 dans le forum jQuery
    Réponses: 1
    Dernier message: 28/01/2010, 00h40
  4. Réponses: 4
    Dernier message: 22/12/2009, 18h06
  5. [DOM] Récupérer des données d'un fichier XML
    Par teramp3 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/07/2008, 16h15

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