5176 sujets

Le Bar du forum

Bonjour,

Pourquoi la norme CSS n'utilise pas des expressions xPath comme sélecteurs ? Pourquoi avoir des sélecteurs propres à la norme et qui de plus sont moins puissants que les expressions xPath ?
salut,

c'est question forum bar ou troll çà. je ne connais pas les réalités derriere la raison de ces choix.

mais il me semble qu'on peut avancer que le css est plus simple a apprendre et n'inclus aucune autre connaissance ( a part html) alors que le xpath j'en ai vaguement croisé le chemin à la fac et dans mes lectures.
toujours en pleine découverte de xml de XSL . XSl que je trouve anti-logique dans son fonctionnement. enfin moi en tous cas en 100 essai jamais compris comment ça marche.

css je l'ai appris en lisant 4,5 chapitres d'un bouquin a 10€ et ici et hop ça roule.

sinon plus puissant dis-tu? ben voilà plus dur a faire dans mos navigateurs

et puis XML xpath et compagnie il y a 4-5 ans tous le monde disait a la fac ( les profs ) lisez mais allez pas plus loin c'est trop instable aucune norme n'est fixé....
CPascal a écrit :
(...)
et puis XML xpath et compagnie il y a 4-5 ans tous le monde disait a la fac ( les profs ) lisez mais allez pas plus loin c'est trop instable aucune norme n'est fixé....


Hum... Je suis prof à la fac et je n'ai jamais dit ça -au contraire Smiley lol Mais ce n'est pas l'objet du débat Smiley cligne

J'ai peut-être deux embryons de réponses à la question de mathmax :
- les deux specs ont été développées simultanément (et en fait, si tu regardes les dates de sorties des versions officielles de CSS1 et de XPath, tu verras que la seconde a plusieurs mois de retard sur la première)
- surtout, XPath est utile à la transformation XSL. XSL permet la manipulation complexe des données d'un document XML, et sa transformation en quelque chose d'autre. XSL travaille sur le contenu, les données d'un document XML. En revanche, CSS se contente (mise à part la fameuse propriété... content) de faire de la mise en forme. Pour cela, ce qui est intéressant, c'est le balisage. Donc d'un côté, tu as les sélecteurs XPath qui doivent être capables de discriminer des contenus balisés différemment, mais eux aussi différents en eux-mêmes (tu dois pouvoir faire la différence entre <animal>vache</animal> et <animal>ouistiti</animal>), et de l'autre côté les sélecteurs CSS qui doivent eux mettre en forme un certain type de document XML ou HTML, ce qui renvoie à la grammaire utilisée, donc au balisage et non au contenu balisé.

Mais ce n'est que mon avis...
a écrit :

les deux specs ont été développées simultanément (et en fait, si tu regardes les dates de sorties des versions officielles de CSS1 et de XPath, tu verras que la seconde a plusieurs mois de retard sur la première)


ok mais dans la norme CSS 2, ils auraient put implémenter xPath...


a écrit :

sinon plus puissant dis-tu?


oui dans la mesure ou tout sélecteur css peut être transcrit en expression xPath mais pas l'inverse. La syntaxe xPath est beaucoup plus complète est très logique. Un exemple :

en css

div#MonCadrePrincipal p.UneCertaineClasse a span.Class1, div#MonCadrePrincipal p.UneCertaineClasse a span.Class2, div#MonCadrePrincipal p.UneCertaineClasse a span.Class3, div#MonCadrePrincipal p.UneCertaineClasse a span.Class4, 


en xPath

//div[@id='MonCadrePrincipal']//p[@class='UneCertaineClasse']//a// span[@class='Class1' or @class='Class2' or @class='Class3' or @class='Class4']


De plus, on peut donner des conditions sur les contenus de l'élément courant, de ses enfants ou de ses ancêtres et contrôler les position verticales et horizontales de ceux-ci.

a écrit :

Donc d'un côté, tu as les sélecteurs XPath qui doivent être capables de discriminer des contenus balisés différemment, mais eux aussi différents en eux-mêmes (tu dois pouvoir faire la différence entre <animal>vache</animal> et <animal>ouistiti</animal>), et de l'autre côté les sélecteurs CSS qui doivent eux mettre en forme un certain type de document XML ou HTML, ce qui renvoie à la grammaire utilisée, donc au balisage et non au contenu balisé.


D'accord, donc en fait ça serait pour empêcher de travailler sur le contenu... Smiley ohwell . Soit, mais il reste encore quelques avantages à xPath...
Modifié par mathmax (04 Dec 2007 - 15:39)