Marc Uberstein
Marc Uberstein

Reputation: 12541

Completing HTML tags

I am building a page using string builder methods etc.

I have a scenario where I have to keep the html but space is limited and I have to cut the string to make it fit.

The problem is that when cutting the string some HTML tags will have opening tags but no closing tags... and will cause page to break.

Is there some function of reading the string and adding the closing tags relative to the content.

This is my current function:

public string cutTxtChkItalics(string val, int maxValue, string addToEnd)
{
    string rVal = val;

    if (val.Length >= maxValue)
        rVal = rVal.Substring(0, maxValue) + addToEnd;

    if (rVal.ToLower().Contains("<i>") && !rVal.ToLower().Contains("</i>"))
        rVal += "</i>";
    if (rVal.ToLower().Contains("<em>") && !rVal.ToLower().Contains("</em>"))
        rVal += "</em>";

    return rVal;
}

Upvotes: 1

Views: 259

Answers (1)

Vir
Vir

Reputation: 1354

Hi you can use Html Agility pack.Here is some code sample i hope it help you. page content is the html code which is having some problem and SW is the stringWriter on which i am saving the corrected html.

 HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        doc.LoadHtml(pagecontent);
        if (doc == null) ;
        doc.OptionCheckSyntax = true;
        doc.OptionAutoCloseOnEnd = true;
        doc.OptionFixNestedTags = true;
        int errorCount = doc.ParseErrors.Count();
        string output = "";
        doc.Save(SW);

Upvotes: 4

Related Questions