Comment enlever le
balise dans ma chaîne html utilisant HtmlAgilityPack en C #?

c# c#-4.0 html-agility-pack

Question

J'ai une chaîne HTML et j'utilise HtmlAgilityPack pour l'analyse de chaînes HTML.

C'est ma chaîne html

<p class="Normal-P" style="direction: ltr; unicode-bidi: normal;"><span class="Normal-H">sample<br/></span> <span class="Normal-H">texting<br></span></p>

Cette chaîne HTML comporte une balise <br> à deux endroits.Alors, je souhaite supprimer les deux balises ...

pouvez-vous m'aider à supprimer toutes les balises <br> de ma chaîne html ...

Réponse acceptée

C'est aussi simple que:

  • chargement du fragment HTML dans un pack d'agilité HtmlDocument
  • obtenir toutes les balises <br /> utilisant l'expression "//br" xpath
  • supprimer les balises obtenues à l'étape précédente à l'aide de la méthode Remove()
  • inspection du résultat dans la propriété DocumentNode.OuterHtml

Ici c'est en code:

const string htmlFragment =
    @"<p class=""Normal-P"" style=""direction: ltr; unicode-bidi: normal;"">" +
    @"<span class=""Normal-H"">sample<br/></span>" +
    @"<span class=""Normal-H"">texting<br></span></p> ";

var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(htmlFragment);

foreach (var brTag in document.DocumentNode.SelectNodes("//br"))
    brTag.Remove();

Console.WriteLine(document.DocumentNode.OuterHtml);

Réponse populaire

string html = ...;
string html = Regex.Replace(html, "<br>", "", RegexOptions.Singleline);


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow