找到句子中的标签,将它们排除在外,然后将它们放回相同的顺序和位置
本文关键字:位置 然后 顺序 排除 句子 标签 | 更新日期: 2023-09-27 18:20:26
假设我有这样的字符串:
string str = "This is an <b>Example</b> of the string"
我需要从字符串中取出<b>
和</b>
,并使其看起来像这样,这样我就可以像那样使用它来满足除打印之外的其他需要:
string edtStr = "This is an Example of the string."
但之后,我想把标签放回,这样我就可以用粗体属性打印那个部分。最简单的方法是什么?
创建一个没有html标记的新字符串,而现有字符串保持原样。您可以将两者用于不同的目的。
字符串在C#中是不可变的。
您需要使用HTML解析器读取HTML。这是一个使用HTML敏捷包的小程序。做这个把戏的是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;