Parser un tableau HTML pour l'adapter en ajoutant filtres et pagination

SéquenceSignificationDécrit en sectionVersion CSS
*tout élémentSélecteur universel2
Etout élément de type ESélecteur de type d'élément1
E[foo]tout élément E portant l'attribut "foo"Sélecteurs d'attribut2
E[foo="bar"]tout élément E portant l'attribut "foo" et dont la valeur de cet attribut est exactement "bar"Sélecteurs d'attribut2
E[foo~="bar"]tout élément E dont l'attribut "foo" contient une liste de valeurs séparées par des espaces, l'une de ces valeurs étant exactement égale à "bar"Sélecteurs d'attribut2
E[foo^="bar"]tout élément E dont la valeur de l'attribut "foo" commence exactement par la chaîne "bar"Sélecteurs d'attribut3
E[foo$="bar"]tout élément E dont la valeur de l'attribut "foo" finit exactement par la chaîne "bar"Sélecteurs d'attribut3
E[foo*="bar"]tout élément E dont la valeur de l'attribut "foo" contient la sous-chaîne "bar"Sélecteurs d'attribut3
E[lang|="en"]tout élément E dont l'attribut "lang" est une liste de valeurs séparées par des tirets et commençant (à gauche) par "en"Sélecteurs d'attribut2
E:rootun élément E, racine du documentPseudo-classes structurelles3
E:nth-child(n)un élément E qui est le n-ième enfant de son parentPseudo-classes structurelles3
E:nth-last-child(n)un élément E qui est le n-ième enfant de son parent en comptant depuis le dernier enfantPseudo-classes structurelles3
E:nth-of-type(n)un élément E qui est le n-ième enfant de son parent et de ce typePseudo-classes structurelles3
E:nth-last-of-type(n)un élément E qui est le n-ième enfant de son parent et de ce type en comptant depuis le dernier enfantPseudo-classes structurelles3
E:first-childun élément E, premier enfant de son parentPseudo-classes structurelles2
E:last-childun élément E, dernier enfant de son parentPseudo-classes structurelles3
E:first-of-typeun élément E, premier enfant de son typePseudo-classes structurelles3
E:last-of-typeun élément E, dernier enfant de son typePseudo-classes structurelles3
E:only-childun élément E, seul enfant de son parentPseudo-classes structurelles3
E:only-of-typeun élément E, seul enfant de son typePseudo-classes structurelles3
E:emptyun élément E qui n'a aucun enfant (y compris noeuds textuels purs)Pseudo-classes structurelles3
E:link E:visitedun élément E qui est la source d'un hyperlien dont la cible n'a pas encore été visitée (:link) ou a déjà été visitée (:visited)Les pseudo-classes de lien1
E:active E:hover E:focusun élément E pendant certaines actions de l'usagerLes pseudo-classes d'action Usager 1 and 2
E:targetun élément E qui est la cible de l'URL d'origine contenant lui-même un fragment identifiant.La pseudo-classe :target3
E:lang(c)un élément E dont le langage (humain) est c (le langage du document spécifie comment le langage humain est déterminé)La pseudo-classe :lang() 2
E:enabled E:disabledun élément d'interface utilisateur E qui est actif ou inactif.Les pseudo-classes d'état d'élément d'interface3
E:checked E:indeterminateun élément d'interface utilisateur E qui est coché ou dont l'état est indéterminé (par exemple un bouton-radio ou une case à cocher)Les pseudo-classes d'état d'élément d'interface3
E:contains("foo")un élément E dont le contenu textuel concaténé contient la sous-chaîne "foo"La pseudo-classe de contenu3
E::first-linela première ligne formatée d'un élément EThe :first-line pseudo-element1
E::first-letterle premier caractère formaté d'un élément ELe pseudo-élément ::first-letter 1
E::selectionla partie d'un élément E qui est actuellement sélectionnée/mise en exergue par l'usagerLes pseudo-éléments fragments d'éléments d'interface3
E::beforele contenu généré avant un élément ELe pseudo-élément ::before 2
E::afterle contenu généré après un élément ELe pseudo-élément ::after 2
E.warningUniquement en HTML. Identique à E[class~="warning"].Sélecteurs de classe1
E#myidun élément E dont l'ID est égal à "myid".Sélecteurs d'ID1
E:not(s) un élément E qui n'est pas représenté par le sélecteur simple sLa pseudo-classe de négation3
E Fun élément F qui est le descendant d'un élément ECombinateur de descendance1
E > Fun élément F qui est le fils d'un élément ECombinateur filial2
E + Fun élément F immédiatement précédé par un élément ECombinateur d'adjacence directe2
E ~ Fun élément F précédé par un élément ECombinateur d'adjacence indirecte3

Dans cette page, avant l’action de FreeDatas2HTML, toutes les données sont affichées, sans proposer ni filtre, ni pagination.

C’est un cas d’usage possible de FreeDatas2HTML : vous listez des données dans une page via votre code backend (PHP, Python, node.js…). Vous souhaitez proposer à vos utilisateurs de passer de pages en pages, d’effectuer des recherches… tout cela sans avoir à appeler de nouveau votre backend. Le résultat est plus fluide et cela économise les ressources de votre serveur, tout se faisant dans le navigateur de l’utilisateur.

Il est aussi possible d’adapter le rendu à la taille de l’écran de votre utilisateur. C’est le cas dans cette page où les données ne sont pas réaffichées sous forme de tableau si l’écran est large de moins 800 px. Si vous visionnez cette page sur un grand écran, vous pouvez simuler cet affichage en faisant « Ctrl+Maj+M », puis « F5 ».

Dans l’autre sens, il pouvez aussi parser des données listées autrement que dans un tableau HTML, du moment qu’il reste possible de cibler séparément le nom des champs et la liste des enregistrements via des sélecteurs CSS. Dans ce but, les sélecteurs listés ci-dessous, venant du site du W3C pourront vous être utiles !

Cet exemple montre aussi que les données peuvent être affichées dans un ordre différent de celui de la source de données, le champ « Version CSS » y étant en dernière colonne. De même, il est tout à fait possible ne pas afficher tous les champs fournis par la source de données.