Forum Programmation.c code pour faire du xpath avec du xml en C

Posté par  .
Étiquettes : aucune
0
31
août
2004
Bonjour à tous,

J'ai un xml avec lequel je voudrais faire du XPath pour recupérer seulement les infos qui m'interesse. J'ai essayer libxml2 mais ca me parait vraiment gros pour faire un truc tout simple. J'utilise déjà expath.

Merci pour toutes suggestions.
  • # exemple libxml2/xpath

    Posté par  (site web personnel) . Évalué à 2.

    L'exemple http://xmlsoft.org/examples/xpath1.c(...) fait 250 lignes, oui, mais tu n'as peut-être pas besoin de tout cela. Déjà, si ton XML n'utilise pas de namespace, ça raccourcit de beaucoup.
    
    
    Quelque chose minimaliste, qui parse t.xml et affiche les noeuds "matchant" l'expression xpath "//elem" pourrait ressembler à:
    (il faut quand même y ajouter une petite gestion des erreurs)
    
    
    #include <libxml/tree.h>
    #include <libxml/xpath.h>
    
    int main(int argc, char *argv[])
    {
            xmlDoc *doc;
            xmlXPathContext *ctx;
            xmlXPathObject *xpathObj;
            xmlNode *node;
            int i, n;
    
            doc = xmlParseFile("t.xml");
            ctx = xmlXPathNewContext(doc);
            xpathObj = xmlXPathEvalExpression("//elem", ctx);
    
            n = xpathObj->nodesetval->nodeNr;
            for (i=0; i<n; i++) {
                    node = xpathObj->nodesetval->nodeTab[i];
                    printf("node: %s\n", node->name);
            }
    
            return 0;
    }
    
    Compile rapide avec gcc t.c -o t `pkg-config --cflags --libs libxml-2.0`
    • [^] # Re: exemple libxml2/xpath

      Posté par  . Évalué à 1.

      j'ai bien tester les deux exemples mais j'ai juste
      node:elem
      node:elem

      mais il me faudrait le tags à l'ouverture jusqu'a la fermeture avec le "<elem>blablablalbla</elem>"

      Le truc est que ca fait une librairie de 2 Mo pour juste 15 lignes de code et je trouve que c'est trop.
      Je cherche juste une source qui fait XPath avec un xml que je donne et l'expression.
      J'ai bien essayer de récuperer seulement XPath de libxml2 mais tous est lier l'un dans l'autres.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.