2010-02-08 7 views
1

Je travaille sur une application de type navigateur qui récupère du code HTML à partir d'un site (n'importe quel site Web), puis applique un script de style pour changer certains éléments (comme greasemonkey).Manipulation de fichiers HTML

Mon plan initial est d'analyser le HTML en utilisant XPath et XmlDocument, mais y a-t-il un meilleur moyen?

Merci d'avance!

Ps> Conseils pratiques, astuces & liens sur HTML + C# serait bien ~ ^^

Répondre

5

HTML est suit pas toujours les règles XML, par exemple il y a des balises en HTML, qui peuvent ne pas avoir balise fermante, donc XPath et XDocument lancent parfois des erreurs. API IE vous donne la possibilité de le faire (voir here), vous pouvez également trouver 3 ème partie parseurs pour cela (voir this o this)

0

Je recommande fortement l'utilisation XSLT. Cela vous permet de conserver toutes vos données transformationnelles en dehors de votre code, et donc de le modifier très facilement si le code HTML à transformer est modifié ou si vous souhaitez modifier votre mise en page.

Néanmoins, si vous utilisez du HTML et non du XHTML, méfiez-vous des erreurs possibles. Néanmoins, l'utilisation d'une bibliothèque Tidy peut vous aider à surmonter cela.

0

Je recommande vraiment d'utiliser un paquet pour votre langage de programmation de choix qui gère toutes les bizarreries de l'analyse HTML. J'ai déjà utilisé Hpricot dans Ruby avant et ça a rendu les choses un jeu d'enfant.

0

Si vous voulez être en mesure de parcourir le code HTML en fonction de son contenu, XPath est un bon choix. Mais vous devrez d'abord nettoyer le code HTML. Vous pouvez utiliser HTML Tidy pour convertir le HTML en XHTML. Dans le processus, vous pouvez modifier la façon dont la page s'affiche. Mais cela semble être le but de votre projet, ce qui n'est pas une grosse affaire.