Forum Programmation.web Requête XPath

Posté par  .
Étiquettes : aucune
0
21
août
2008
Bonjour,

Voilà, j'aimerais obtenir un résultat par une requête XPath obligatoirement. Voici la forme de mon XML, pour illustrer (dsl, je n'ai pas trouvé la balise de code j'ai remplacé les inf et sup par des dollards) :

$noeud_parent$
$noeud attr1="toto1" /$
$noeud attr1="toto2" attr2="tutu" /$
$noeud attr1="toto3" /$
$/noeud_parent$

J'aimerais obtenir la liste des attributs qui sont présents dans tous les noeuds "noeud". Sur l'exemple, il faudrait que la requête me renvoie juste l'attribut "attr1".
C'est peut-être tout bête, mais je me demande même si c'est faisable en XPath car je n'ai rien trouvé sur Internet pour me mettre sur la piste.
Ce que je veux faire ressemble plus à une requête SQL qu'autre chose!

Merci d'avance.
  • # XSLT?

    Posté par  . Évalué à 1.

    Non, en XPath pur (sans fonction d'extension) je pense que ce n'est pas possible.
    Par contre si tu est dans un contexte XSLT ça devrait être réalisable sans trop de problème.
    Sinon regarde si tu as des extensions utiles dans ton implémentation XPath, et si tu peux te permettre de les utiliser (si ton code ne doit pas être portable sur d'autres implémentations)
  • # Sélectionner des attributs

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

    Cela se fait avec @, ton expression est donc quelque chose comme :

    //noeud/@*


    Sinon pour les < et > cela se fait avec &lt; &gt;
    • [^] # Re: Sélectionner des attributs

      Posté par  . Évalué à 1.

      Bonjour,

      Je connais bien < > mais ca ne fonctionnait pas non plus (bizarre, maintenant ca marche!).
      Sinon, l'expression XPath que tu me donnes me permet juste de lister tous les attributs de "noeud". Or ce n'est pas ce que je veux faire, puisque, j'ai plusieurs "noeud" qui peuvent avoir différents attributs.

      Mais c'est bon, j'ai fait ça à la main finalement et ca fonctionne bien. Merci quand même.

Suivre le flux des commentaires

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