Anyone,
I am trying to do a string replace of a custom Html Tag that is Case
Insensitive and Fast, I will be calling this function a bunch of times.
Any thoughts about using maybe a StringBuilder or StringReader/Writer to
increase performance.
Please feel free to mark up my code and send it back. Thanks for any
help....
public string FormattedHtml
{
get
{
string formattedHtml = _html;
formattedHtml = ReplaceHtmlTag(formattedHtml, "heading", "h" +
_headingLevel.ToString());
return formattedHtml;
}
}
private string ReplaceHtmlTag(string source, string tag, string newTag)
{
string outHtml = source;
string startTag = "<" + tag.ToLowerInvariant();
string endTag = "</" + tag.ToLowerInvariant();
int pos = outHtml.ToLowerInvariant().IndexOf(startTag);
while (pos >= 0)
{
string begin = outHtml.Substring(0, pos);
outHtml = begin + "<" + newTag + outHtml.Substring(pos + startTag.Length,
outHtml.Length - pos - startTag.Length);
pos = outHtml.ToLowerInvariant().IndexOf(startTag, pos);
}
pos = outHtml.ToLowerInvariant().IndexOf(endTag);
while (pos >= 0)
{
string begin = outHtml.Substring(0, pos);
outHtml = begin + "</" + newTag + outHtml.Substring(pos + endTag.Length,
outHtml.Length - pos - endTag.Length);
pos = outHtml.ToLowerInvariant().IndexOf(endTag, pos);
}
return outHtml;
}