2011-10-12 73 views
1

我使用的字符串生成器,方法等完成HTML标签

我遇到的情况,我必须保持HTML,但空间是有限的,我不得不削减的字符串,使之适合在创建页面。

问题是当切割字符串时,一些HTML标签会有开始标签但没有结束标签......并且会导致页面中断。

是否有读取字符串和添加结束标记相对于内容的某些功能。

这是我目前的功能:

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; 
} 
+0

将字符串修改为XML可能更容易。 – Amry

回答

4

嗨,你可以使用HTML敏捷pack.Here是一些代码示例,我希望它帮你。 页面内容是有问题的HTML代码,SW是我在其上保存纠正的HTML的stringWriter。

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); 
+0

谢谢老兄。这很简单!大声笑。将很好的提取单独的函数AutoCloseOnEnd添加到我的库中。 :)欢呼声 –