假设我有一些像这样的字符串:
string str = "This is an <b>Example</b> of the string"
我需要从字符串中取出<b>
和</b>
并使其看起来像这样,所以我可以像其他那样使用它来打印:
string edtStr = "This is an Example of the string."
但之后,我想要重新标记这些标签,以便我可以使用粗体属性打印该部分。最简单的方法是什么?
答案 0 :(得分:3)
创建一个没有html标记的新字符串,而现有字符串保持不变。您可以将它们用于不同目的。
字符串在C#中是不可变的。
答案 1 :(得分:1)
您需要使用html解析器阅读HTML。这是使用HTML Agility Pack的小程序。诀窍是node.RemoveChild(oldChild, keepGrandChild)
。您可以通过添加删除的所有标记来扩展逻辑,例如<b>, <i>
等。
static void Main(string[] args)
{
string html = "<span>This is an <b>Example</b> of the string</span>";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
List<HtmlNode> spanNodes = doc.DocumentNode.Descendants().Where(x => x.Name == "span").ToList();
foreach (HtmlNode node in spanNodes)
{
HtmlNode boldNode = node.SelectSingleNode("b");
node.RemoveChild(boldNode, true);
}
Console.WriteLine(doc.DocumentNode.OuterHtml);
}
为此,您需要使用NuGet
进行安装PM> Install-Package HtmlAgilityPack
并添加using HtmlAgilityPack;