网络核心:将字符串转换为TagBuilder

8 c# asp.net-core-mvc .net-core asp.net-core

以下代码将转换TagBuilderString。恰恰相反?如何将a反转String为a TagBuilder?寻找解决方案。

将IHtmlContent / TagBuilder转换为C#中的字符串

public static string GetString(IHtmlContent content)
{
    using (var writer = new System.IO.StringWriter())
    {        
        content.WriteTo(writer, HtmlEncoder.Default);
        return writer.ToString();
    } 
}       
Run Code Online (Sandbox Code Playgroud)

Rez*_*aei 6

作为一种选择,您可以使用html解析器,例如,HtmlAgilityPack并获取html节点,然后创建TagBuilder使用节点的名称,属性和内部html:

public TagBuilder GetTagBuilder(string html)
{
    var node = HtmlAgilityPack.HtmlNode.CreateNode(html);
    var tagBuilder = new TagBuilder(node.Name);
    tagBuilder.MergeAttributes(node.Attributes.ToDictionary(x => x.Name, x => x.Value));
    tagBuilder.InnerHtml = node.InnerHtml;
    return tagBuilder;
}
Run Code Online (Sandbox Code Playgroud)

例如:

var html = @"<div id=""div1"" class=""class1"">Something</div>";
var tagBuilder = GetTagBuilder(html);
var str = tagBuilder.ToString();
Run Code Online (Sandbox Code Playgroud)

那么该str值将是:

<div class="class1" id="div1">Something</div>
Run Code Online (Sandbox Code Playgroud)