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

XSL/XSLT/XPATH XML Discussion :

[XPATH] Débutant: Sélectionner un ou plusieurs noeuds


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Invité
    Invité(e)
    Par défaut [XPATH] Débutant: Sélectionner un ou plusieurs noeuds
    Bonjour

    Je débute en XML et XPATH
    et je bute sur un problème de base

    Soit le fichier XML 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
     
    <?xml version="1.0" encoding="ISO-8859-15"?>
    <OTA_HotelResNotifRQ EchoToken="1195825456" ResStatusType="Initiate"
         Target="Production" TimeStamp="2007-11-23T14:44:16" Version="1"
         xmlns="http://www.opentravel.org/OTA"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OTA_HotelResNotifRQ.xsd">
         <UniqueId Id="28-10840-25" Type="RESERVATION"/>
         <POS>
              <Source>
                   <UniqueId>
                        <CompanyName>GHS</CompanyName>
                   </UniqueId>
                   <BookingChannel>
                        <CompanyName>GHS</CompanyName>
    et le code DOM suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Noeuds_R := XMLDoc.documentElement.selectNodes('/OTA_HotelResNotifRQ');
    ne me renvoie aucun noeud

    au contraire le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Noeuds_R := XMLDoc.documentElement.selectNodes('/*);
    me renvoie le noeud OTA_HotelResNotifRQ

    je ne comprend pas pourquoi la premiere ligne de code ne me renvoie pas le noeud OTA_HotelResNotifRQ.

    Quelqu'un pourait-il m'expliquer ?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    C'est a cause de l'attribut spécial xmlns
    j'avance, mais si quelqu'un connait le pourquoi
    pourrait-il m'eclairer ?

  3. #3
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    et bien tout simplement que http://truc.fr:TOTO n'est pas la même balise que TOTO.
    par contre je ne comprend pas ton soucis tu souhaite obtenir quoi et qu'obtiens tu?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut

    pour débuter je souhaite sélectionner le noeud racine
    mais comme je dis dans le premier message je n'y arrive pas (encore)

    Je ne connaissais pas le concept des espaces de noms, maintenant je vois comment ca marche

    j'utilise l'API DOM de MSXML 5.0
    j'ai rajouté la proprieté SelectionNamespaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XMLDoc.setProperty('SelectionNamespaces', SelectionNamespaces_str);
    avec
    SelectionNamespaces_str = "xmlns='http://www.opentravel.org/OTA' xmlns:xsi=''http://www.w3.org/2001/XMLSchema-instance'"

    mais je n'arrive toujours pas à sélectionner le noeud racine

    (NB: le noeud racine fait partie de l'espace de nom implicite)

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'ai trouvé

    pour utliser XPATH dans MSXML

    il faut redefinir le namespace implicite du fichier XML
    en un namespace non implicite

    avec la fonction XMLDoc.setProperty('SelectionNamespaces', 'xmlns:DEF=".....
    ou on invente un prefixe (DEF: par exemple)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/03/2009, 12h54
  2. Débutant : sélectionner un répertoire
    Par Alouka dans le forum MFC
    Réponses: 3
    Dernier message: 11/10/2006, 11h52
  3. [C#][Débutant] Comment ajouter un sous noeud a un treeview
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/05/2006, 18h11
  4. Réponses: 31
    Dernier message: 25/10/2005, 18h26
  5. [XPATH] ou [XSL] Arret au premier noeud
    Par laurenzo dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 25/04/2005, 16h42

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