如何使用c#从html元素中删除属性?

时间:2017-08-13 13:13:29

标签: c# angularjs

我是C#的新手。我正在尝试删除包含图像标记的特定span标记。但我不想删除图片标签。如果有人给出建议或解决方案,我感谢你。谢谢。

string content =“span 1 span 2”;

1 个答案:

答案 0 :(得分:-1)

您可以检查字符串值是否包含特定值(在您的案例范围内),然后操纵字符串以删除您想要的内容:

第一:获取字符串中开始范围标记的索引

if (yourString.ToUpper().Contains("SPAN")) // You also can check '<SPAN'
{
    var openIndex = yourString.ToUpper().IndexOf("SPAN", StringComparison.Ordinal);
}

第二:获取结束范围标记的索引

var closeIndex = yourString.ToUpper().IndexOf("</SPAN>", StringComparison.Ordinal);

3rd :操纵你的字符串,现在你知道span标记的开始和结束位置,这样你就可以使用这些索引对原始字符串进行子字符串

var manipString = yourString.Substring(openIndex, closeIndex + 7) // +7 for '</SPAN>' lenght

第4次:找到&#39;&gt;&#39;关闭开口范围标签

var closeTagIndex = manipString.IndexOf(">", StringComparison.Ordinal);

5th :删除span标记

var finalString = manipString.Substring(0, closeTagIndex);
var arr = finalString.ToCharArray();
Array.Reverse(arr);
var reverseFinalString = new string(arr);
reverseFinalString = reverseFinalString.Substring(0, 7)
arr = reverseFinalString.ToCharArray();
Array.Reverse(arr);
finalString = new string(arr);
  • 如果您只想删除包含img标记的span标记,请重复此过程并检查img标记string.ToUpper().Contains("<IMG")
  • 您可能希望在我已经完成的另一个范围内声明变量以便访问它们
  • 您可能还想重构一下这段代码并编写一个ReverseString()方法来避免重复,代码将更具可读性和可维护性

希望这有帮助!