28 votes

C# HTMLDecode sans System.Web possible ?

Je sais qu'il existe différentes méthodes dans l'espace de noms System.Web pour décoder les entités html (comme "%20" pour l'espace). Cependant, je suis en train de construire une application Winforms qui doit traiter des chaînes codées en html. En gros, j'ai le fichier XML de la bibliothèque iTunes et je dois décoder les URL qui s'y trouvent pour vérifier les fichiers.

Est-ce possible sans l'espace de noms System.Web ?

67voto

bizon Points 1225

Les développeurs qui ont besoin d'utiliser System.Web.HttpUtility dans leurs applications clientes et qui devaient faire référence à System.Web.dll et donc cibler NET4 full (System.Web.dll est en Full), peuvent maintenant cibler le profil client NET4 en utilisant la nouvelle classe System.Net.WebUtility qui est en Full. en utilisant la nouvelle classe System.Net.WebUtility qui se trouve dans le fichier System.dll (System.dll est dans NET4 Client Profile). System.Net.WebUtility comprend HtmlEncode et HtmlDecode. L'encodage d'url peut être réalisé à l'aide de la classe System.Uri (également dans System.dll).

Desde http://blogs.msdn.com/b/jgoldb/archive/2010/04/12/what-s-new-in-net-framework-4-client-profile-rtm.aspx

26voto

Jon Skeet Points 692016

Le fait que vous écriviez une application Windows Forms ne vous empêche pas d'utiliser System.Web . Il suffit d'ajouter une référence à System.Web.dll .

15voto

kirankumar Points 111

Vous pouvez utiliser System.Net.WebUtility.HtmlDecode :

Convertit une chaîne qui a été codée en HTML pour une transmission HTTP en une chaîne décodée.

7voto

Steve Eisner Points 1544

Voir cet article si vous êtes toujours curieux de savoir comment faire sans System.Web. Il offre une solution pour le décodage des URI (qui est vraiment ce que vous décodez, pas les entités HTML qui sont quelque chose comme "&emdash ;").

1voto

Mitchel Sellers Points 38352

Pour utiliser les méthodes du cadre .NET, vous devez utiliser l'espace de noms System.Web pour obtenir la méthode HtmlDecode.

Oui, vous pourriez écrire votre propre méthode pour le faire, mais cela n'aurait pas beaucoup de sens.

Il suffit d'ajouter la référence à system.web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X