2010-04-14 9 views

Répondre

1

Utilisez regex.

String result = Regex.Replace(your_text_goes_here, @"<[^>]*>", String.Empty); 
+0

@sashaeve: Ce n'est pas assez fiable pour rendre le HTML – James

+1

@James: Pourquoi pas? Tout dépend de la complexité du HTML qui sera utilisé comme source. Si simple comme dans l'exemple - ce sera suffisant. – sashaeve

+0

oui peut-être ainsi (comme je l'ai suggéré moi-même) mais je suppose que le HTML serait un peu plus complexe que ce qui a été fourni dans l'exemple. – James

3

Je suggère d'essayer le HTML Agility Pack pour .NET:

Html Agility Pack - Codeplex

Attemtping pour analyser par HTML avec tout le reste est, pour la plupart, peu fiables.

Quoi que vous fassiez, DON'T TRY TO PARSE HTML WITH REGEX!

+0

Je pense que HtmlAgilityPack est pas nécessaire pour cette tâche simple. Vois ma réponse. – sashaeve

+0

@sashaeve Et voir ma réponse mise à jour. Pour un exemple simple comme celui-ci, RegEx peut fonctionner ... mais ce n'est qu'un exemple. Ma conjecture est que son vrai problème est beaucoup plus complexe et que SO post explique IN DEPTH pourquoi vous ne pouvez pas analyser HTML avec RegEx. –

+0

D'accord avec vous. – sashaeve

0

Vous auriez besoin d'utiliser une forme d'analyseur HTML. Vous pouvez utiliser un Regex existant ou créer le vôtre. Cependant, ils ne sont pas toujours fiables à 100%. Je suggère d'utiliser un utilitaire 3ème partie comme HtmlAgilityPack (je l'ai utilisé celui-ci et je le recommande)

0

pauvres HTML Man Parser

 string s = 
      @" 
      <html> 
      <body> 
      <h1>My First Heading</h1> 
      <p>My first paragraph.</p> 
      </body> 
      </html> 
     "; 

     foreach (var item in s.Split(new char[]{'<'})) 
     { 
      int x = item.IndexOf('>'); 

      if (x != -1) 
      { 
       Console.WriteLine(item.Substring(x).Trim('>')); 
      } 
     } 
Questions connexes