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

ASP.NET Discussion :

Problème avec XPath


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Problème avec XPath
    Bonjour,

    J'ai un site asp (codé en VB) qui liste sur la page les titres de news stockés dans un fichier XML puis lorsqu'on clique sur un titre, on accède à l'article concerné.

    Pour la liste c'est règlé mais pour réussir à afficher un article ça bloque. Je désire utiliser XPath en me servant du "id" que j'envoie par querystring qui identifie l'article (entry) à afficher.

    Voici ma structure XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <news>
        <entry id="2009100001">
             <authorName>Sam</authorName>
             <title>Je veux faire marcher ce truc !</title>
             ....
        </entry>
    </news>
    Je devrais pouvoir obtenir mes infos avec la requête xpath suivante "/news/entry[@id=2009100001]" mais ça ne fonctionne pas.

    Peut-être que je passe à côté de la plaque ou que j'oublie une étape.

    SVP donnez moi un coup de main (ou un bout de code) pour réaliser ça ! Merci beaucoup !

    Sam

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    qu'est ce qui ne fonctionne pas ? Comment fais tu ton appel ?

    J'ai essayer avec XPathMania et ca me retourne les bonnes valeurs ...

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 270
    Points : 76
    Points
    76
    Par défaut
    Quand tu dis que cela ne marche pas, tu peux préciser?

    tu peux nous montrer ce morceau de code

    merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Voici mon code VB : (Faites pas attention à la validation, y'en a pas pour le moment, mais le paramètre "article" du querystring que j'envoi est valide.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim id As String = Page.Request.QueryString.Get("article") 'Ici on passe "200910001"
    'le nom du fichier XML est au format News_AAAAMM.xml. L'id d'un article est AAAAMMXXX où XXX est un incrément pour chaque article de ce mois.
    Dim article As New XPathDocument(MapPath("~/App_Data/News_" & id.Remove(6) & ".xml"))
    Dim navigator As XPathNavigator
    Dim iterator as XPathNodeIterator
    Dim expr as XPathExpression = XPathExpression.Compile("/news/entry[@id='" & id & "']")
     
    navigator = article.CreateNavigator()
    iterator = navigator.Select(expr)
     
    While iterator.MoveNext()
        Page.Response.Write(iterator.Current.Name & " : " & iterator.Current.Value & "<hr />")
    End While
    Sur la page aspx j'ai des labels que je désire afficher une information concernant chaque élément enfant de <entry>. Ex. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <asp:label id="lblTitle" runat="server" text="[JE VEUX INSÉRER LA VALEUR DE <title> ICI !!!]" />
    <asp:label id="lblAuthor" runat="server" text="[JE VEUX INSÉRER LA VALEUR DE <authorName> ICI !!!]" />
    <asp:label .....
    Ça ne rentre jamais dans la boucle While et si j'espionne iterator.Current.Value avant le While, ça contient tout le xml en texte mis bout à bout sans les balises et le iterator.Count est à 0. Je veux savoir pourquoi l'iterator n'arrive pas à se créer une collection de noeuds dans lesquels je pourrais facilement obtenir la valeur des éléments enfants de <entry> pour peupler mes <asp:label> sur ma page.

    Merci

    Sam

Discussions similaires

  1. [XPATH] problème avec le nom des noeud fils
    Par DrDam dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 04/04/2008, 10h02
  2. (debutant) Un petit problème du recherche avec xpath
    Par Zikas-r dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/12/2007, 02h28
  3. [XSLT ]Problémes avec un Xpath - noeud courant
    Par Mo_Poly dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 01/12/2007, 19h56
  4. Problème de quote avec XPath
    Par fadjerx dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 23/03/2006, 14h45
  5. Problème dans Xpath avec Xerces ou Xalan mais pas XMLSpy
    Par Superpoisson dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 23/09/2005, 14h29

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