Bonjour ;
J'arrive à ouvrir un fichier HTML grâce à un programme C, mais je sais pas détecter une balise !
Vos codes vont m'aider , merci !
Bonjour ;
J'arrive à ouvrir un fichier HTML grâce à un programme C, mais je sais pas détecter une balise !
Vos codes vont m'aider , merci !
Bonjour
Il te faut lire le fichier ligne à ligne (fgets()) puis, pour chaque ligne, pour une recherche simple (exemple chercher des balises comme "<head>") tu peux utiliser strstr()) mais pour chercher des balises plus complexes (exemple "<a href=truc>") l'emploi de regex serait peut-être plus approprié.
Toutefois, si je peux un conseil, le C n'est pas franchement le plus adéquat des langages pour faire ce travail. Il peut le faire, oui, mais ce sera à toi de tout lui détailler. Tandis que d'autres de plus haut niveau (comme python ou même un shell Unix) offrent certains outils et raccourcis syntaxiques qui facilitent le codage de ce genre de travail.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Je propose d'utiliser un parser xml: libxml pourrait faire l'affaire.
Perso si j'avais du temps et si j'étais à ta place j'aurais tout fait moi même, ça ne serait pas complet et optimal mais je me serais amuser.![]()
Le plus gros problème c'est que le HTML (XML) c'est hardcore à parser![]()
Le truc c'est que les balises peuvent être sur plusieurs lignes, elles peuvent être auto-fermantes ou pas. Même pour les balises auto-fermantes, la syntaxe n'est pas figée : " />", "/>" ou ">"
Ensuite chaque balise a des attributs facultatifs. Le seul truc sympa c'est que tous les attributs sont des chaînes de caractères (entouré par des double quotes) - seul les booléens sont bizarres.
Et entre les balises, tu as du texte et/ ou des autres balises. Mais tu as des contraintes (dans une balise a tu ne peux pas mettre d'autres balises).
Le HTML5 a grandement dégraissé le mammouth directement sur la bête () : mettre du javascript dans le HTML est déprécié, tu n'as plus besoin des sections CDATA, ...
Cela va dépendre fortement de ce que @MHIKA WOLF AK-47 veut faireparce que, en C, tu peux coder une machine à états en pur arrache total pour des trucs simples (et même si cela ne fonctionne pas dans 100% des cas)
Mais par contre, s'il veut des informations sur l'arbre DOM par exemple, il faut passer soit par la grammaire soit par une bibliothèque externe qui parse du HTML
Normalement, pour parser du HTML, il faut une bibliothèque de parsing SGML si c'est du HTML à l'ancienne, ou une bibliothèque de parsing XML si c'est du XHTML.
PS: Je m'attendais à un autre lien sous le mot regex...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Partager