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

XML Discussion :

[libXML] Utilisation d'un espace de noms


Sujet :

XML

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut [libXML] Utilisation d'un espace de noms
    Bonjour,

    je suis en train de faire un parser de fichiers COLLADA (fichier d'échange pour les applications 3D) qui sont des fichiers XML. J'utilise la lib libXML et j'ai envie d'utiliser la composante XPath.

    Petit extrait d'un fichier COLLADA :

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <COLLADA  version="1.4.1" xmlns="http://www.collada.org/2005/11/COLLADASchema">
      <asset>
        <contributor>
          <author>toto</author>
          <authoring_tool>truc muche</authoring_tool>
          <comments>joli commentaire</comments>
          <source_data>file</source_data>
        </contributor>
        <created>2008-06-24T13:58:40Z</created>
        <modified>2008-06-24T13:58:42Z</modified>
        <unit meter="0.0254" name="inch"/>
        <up_axis>Z_UP</up_axis>
      </asset>
      <library_materials>
        <material id="_1_-_Default" name="_1_-_Default">
          <instance_effect url="#_1_-_Default-fx"/>
        </material>
      </library_materials>
    Mon problème est apparemment un problème de namespace car si j'essaye de récupérer par exemple le nœud <asset> fils de <COLLADA> par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    xmlXPathEvalExpression((xmlChar *)"/COLLADA/asset", xpathCtx);
    le xmlXPathObject retourné est vide alors qu'il y a bien un noeud <asset> fils de <COLLADA>.

    Si, dans mon fichier, j'enlève l'attribut xmlns du noeud <COLLADA> alors ça marche. En fait, je vois bien à quoi sert un namespace mais je ne sais pas comment dire à ma lib (libXML) "donne-moi tous les /COLLADA/asset de l'espace de nommage http://www.collada.org/2005/11/COLLADASchema" ..

    Merci bcp

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Par défaut
    J'ai exactement le même problème.
    Je pense d'ailleurs que ce problème a du se poser des milliers des fois.
    Or, impossible de trouver une solution simple (ni même une explication claire) sur le WEB.
    Si un spécialiste peut nous aider, merci d'avance.

Discussions similaires

  1. [SimpleXML] Utilisation d'un espace de nom pour l'ajout d'un attribut
    Par wokba dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 30/05/2010, 16h48
  2. Réponses: 2
    Dernier message: 21/12/2009, 04h25
  3. [win32] Comment utiliser un espace de nom? (System.IO.Ports)
    Par pauledmond dans le forum Visual C++
    Réponses: 5
    Dernier message: 25/05/2007, 12h51
  4. Réponses: 4
    Dernier message: 22/05/2006, 11h46

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