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 :

Parcourir l'arborescence d'un fichier XML


Sujet :

MATLAB

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 75
    Points
    75
    Par défaut Parcourir l'arborescence d'un fichier XML
    Bonjour,

    J'ai un fichier xml ayant le format 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
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <root>
    	<trackfile version="1">
    		<track id="1647444700">
    			<detection classname="plugins" color="-4784384" t="0" type="1" x="29.58" y="90.88" z="0"/>
    			<detection classname="plugins" color="-4784384" t="1" type="1" x="29.84" y="90.84" z="0"/>
    		</track>
    		<track id="1647444700">
    			<detection classname="plugins" color="-4784384" t="0" type="1" x="29.58" y="90.88" z="0"/>
    			<detection classname="plugins" color="-4784384" t="1" type="1" x="29.84" y="90.84" z="0"/>
    			<detection classname="plugins" color="-4784384" t="0" type="1" x="29.58" y="90.88" z="0"/>
    		</track>
    	</trackfile>
    </root>

    et je cherche à le parcourir comme décrit dans la première méthode de cet article : http://blogs.mathworks.com/community...gating-a-tree/

    seulement je n'arrive jamais là où je pense me retrouver dans l'arborescence et quand j'affiche le nom des nœuds, je ne comprends pas les résultats.
    j'utilise le code suivant :

    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
    21
    22
    23
    24
     
    tree = xmlread([folder,filename]);
     
    %la je devrais avoirs root
    trunk = tree.getDocumentElement; 
    disp(['1 : ',char(trunk.getNodeName),' length :'...
            , num2str(trunk.getLength)]);
     
     % ici trackfile
    trackfileNode = trunk.getChildNodes;
    disp(['2 : ',char(trackfileNode.getNodeName),' length :'...
            , num2str(trackfileNode.getLength)]);
     
    % ici track
    trackNodes = trackfileNode.getChildNodes; 
    disp(['3 : ',char(trackNodes.getNodeName),' length :'...
            , num2str(trackNodes.getLength)]);
     
    % et la je devrais parcourir les noeuds detection
    detectionNode = trackNodes.getFirstChild;
    while ~isempty(detectionNode)
        disp(['4 : ',char(detectionNode.getNodeName)]);
        detectionNode =  detectionNode.getNextSibling;
    end
    mais quand je l’exécute, j'obtiens :

    1 : root length :3
    2 : root length :3
    3 : root length :3
    4 : #text
    4 : trackfile
    4 : #text
    du coup je ne comprends pas pourquoi 3 fois root et qu'est ce que c'est que ces "#text" qui trainent.
    Voila du coup j'aurais fortement besoin de vos lumières s'il vous plait.

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

    La classe NodeList n'a en fait que deux méthodes propres: getLength() et item(), il est donc normal à mon sens que toutes les autres méthodes renvoient au nœud parent.
    En ce qui concerne les #text, ce sont tous les espaces et éventuels caractères entre les différents éléments.
    Dans ton cas, cela correspond à ce qui est entre les zones rouges :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <root>
    	<trackfile version="1">
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	</trackfile>
    </root>
    Pour ton problème je te conseillerais l'utilisation de la méthode getElementsByTagName() retournant une liste des éléments portant la nom spécifié, et item() pour récupérer ces enfants.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 75
    Points
    75
    Par défaut
    Merci beaucoup, je n'avais pas fait attention à cette partie dans la doc....

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

Discussions similaires

  1. [XSL] Modif. d'arborescence d'un fichier XML
    Par brother.john dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/11/2007, 10h06
  2. Réponses: 1
    Dernier message: 27/04/2007, 16h03
  3. Présentation HTML en arborescence d'un fichier XML
    Par tomy29 dans le forum Delphi
    Réponses: 1
    Dernier message: 27/12/2006, 20h06
  4. Afficher l'arborescence d'un fichier XML
    Par kingmandrax dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/09/2006, 18h24
  5. Arborescence d'un fichier XML
    Par lysandra dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 21/08/2006, 16h08

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