
Envoyé par
stealth35
Et ce que je comprendre pas c'est quand javascript tout le monde utilise l'API DOm et personne ne fait du regexp pour parser son document ?
C'est la question que je me pose lorsque je parcours le tutoriel DOM de W3C dont les exemples sont entièrement écrits en JavaScript.
Je pense qu'une première explication réside dans la syntaxe de DOM utilisée respectivement par JavaScript et par péachpé :
En JavaScript, un code tel que
1 2 3
| x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
txt=y.nodeValue; |
fait mieux ressortir les notions de propriété et de méthode et permet une lecture intuitive de la structure des instructions.
Par exemple, on comprend bien que
getElementsByTagName("title")[0]
représente une entité.
De ce fait, on fait du DOM en JavaScript comme Monsieur Jourdain faisait de la prose : sans le savoir. 
En péachpé, à cause de l'utilisation de la flèche -> au lieu du point, la syntaxe paraît moins évidente et moins groupée.
1 2 3
| $x = $xmlDoc -> getElementsByTagName("title") -> item(0);
$y = $x -> childNodes -> item(0);
$txt = $y -> nodeValue; |
Dire donc que, fondamentalement, le DOM en PHP n'est ni plus ni moins que le DOM en JavaScript, aux petites différences de syntaxe près (-> au lieu du point ; -> item(i) au lieu de [i] ...) permet sans doute de démystifier sensiblement DOM.
La deuxième explication que je vois est que les regex sont perçues en PHP comme une panacée universelle qu'on peut appliquer pour toutes les recherches, notamment pour parser du html. (Il semble en effet a priori plus naturel de rechercher une chaîne de caractères paramétrée que d'analyser un arbre de document.)
Alors qu'en JavaScript, RegExp est probablement perçue comme une fonction particulière de javascript et n'a peut-être pas l'aura qu'ont les expressions régulières en PHP.
Une troisième explication, à mon sens, réside dans le fait que DOM a été introduit dans PHP, alors qu'il existe implicitement dans JavaScript.
La documentation de DOM PHP porte donc très nettement l'empreinte de cette insertion et semble de ce fait difficile d'accès.
Une quatrième explication réside peut-être dans le fait que JavaScript est initialement davantage perçu comme un langage permettant de générer du html dynamique (voir la multitude d'effets visuels plus ou moins heureux qu'on ajoute aux pages html) que comme un outil d'analyse du code html.
Alors que PHP est davantage perçu comme un outil de traitement de code html avant renvoi au navigateur des pages traitées.
Partager