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 :

[ASP and XML] XmlDocument et XPathExpression


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 65
    Par défaut [ASP and XML] XmlDocument et XPathExpression
    Bonjours,

    J'ai un fichier XML que je veux trier avant de chercher les element precedentes et suivante de l'element courante

    Mon idée consiste à recuperer une partie du document suivant un premier critère (de selection et trie) avec XPathDocument

    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
     
     XPathExpression expr = null;
     expr = nav.Compile("/CATALOG/PRODUCTS/PROD[number(concat(substring  
             (@RELEASED,1,4), substring(@RELEASED,6,2), substring(@RELEASED, 
             9,2))) <= " + DateTime.Now.ToString("yyyyMMdd") + " and 
             @RESTRICTED=0]");
    expr.AddSort("@DATE1", XmlSortOrder.Descending, XmlCaseOrder.None, 
                     String.Empty, XmlDataType.Number);
    expr.AddSort("@DATE2", XmlSortOrder.Descending, XmlCaseOrder.None, 
                     String.Empty, XmlDataType.Number);
     
    XmlDocument catalog = GetXML();
    XPathNavigator nav = catalog.CreateNavigator();
     // Maintenant j'applique mon critère (qui est une XPathExpression sur le doc)
    XPathDocument doc = new XPathDocument(new XmlNodeReader
                                      (catalog.SelectNodes(expr)));
    J'ai une erreur avec l'instruction :
    XPathDocument doc = new XPathDocument(new XmlNodeReader
    (catalog.SelectNodes(expr)));


    Comment peut-on proceder ?

    pour le reste du code, j'applique une seconde critère pour recuprer le noeud courrant afin de chercher le precedent et le 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
     
    int current = ...
    XPathNodeIterator ite = nav.Select("/catalog/product/prod
                                    [@id="+current+"]");
    ite.MoveNext();
    string value = ite.Current.Value;//current value
    ite.Current.MoveToNext();
    string next = ite.Current.Value;//next value 
    if (value != next)
     {
         ite.Current.MoveToPrevious();
         ite.Current.MoveToPrevious();
     }
       else
         {
             ite.Current.MoveToPrevious();
             next = null;
         }
        string previous = ite.Current.Value;//previous value
    Merci pour tout aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 65
    Par défaut
    Bonjours,
    Quelqu'un peut -il m'aider SVP ?

Discussions similaires

  1. Amateras HTML and XML editor
    Par khayyam90 dans le forum Téléchargez
    Réponses: 0
    Dernier message: 27/02/2011, 19h37
  2. Réponses: 2
    Dernier message: 26/07/2007, 09h27
  3. ASP DOM XML (Bloc notes)
    Par totoche dans le forum ASP
    Réponses: 2
    Dernier message: 08/11/2006, 17h14
  4. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31

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