我在C#
中有一个程序从数据库中获取一些数据。数据可以包含html
个标记。不幸的是,在某些情况下,最后关闭的html标记缺少“>”性格。
任何人都可以帮我找到一个解决方案来检查这个不正确的html实例,然后添加尾随的“>”字符。
谢谢。
--- --- EDIT
我正在考虑以这种方式解决问题:
</tag
但是,我不知道我应该在1)使用什么正则表达式。有没有人有想法。我不是很擅长正则表达式。
--- --- EDIT 这些是我可以拥有的数据的一些例子:
hello <span class=green>Sean</span> Moore
hello <span><span class="green">Roger</span></span
答案 0 :(得分:1)
假设您从数据库中获取HTML作为字符串,在这种情况下,字符串上的EndsWith
方法将完成工作
if(!html.EndsWith(">"))
{
html += ">";
}
这是一种快速而肮脏的方法,因此随着代码的增长,您可能会想要摆脱快速黑客攻击。在这方面,您可能想要开始研究HtmlAgilityPack
之类的内容答案 1 :(得分:0)
1)如果数据包含html标签:
if(Data.StartsWith("<") && !Data.EndsWith(">"))
Data += ">";
检查您的数据是否为html(以<
开头)并且不正确(不以>
结尾),如果是,则添加>
2)如果html标签外可以有文字:
if (Data.Contains("</") && Data.LastIndexOf(">") < Data.LastIndexOf("</"))
{
int LastTagPosition = Data.LastIndexOf("</");
int LastTagEndPosition = Data.IndexOf(" ", LastTagPosition);
if (LastTagEndPostion < 0)
Data += ">";
else
Data.Insert(LastTagEndPosition, ">");
}
检查是否有关闭的html标签以及最后>
后是否有</
。如果没有,那么如果没有空格,它会在下一个空格或数据末尾添加>
。