首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Net核心:将字符串转换为TagBuilder

Net核心:将字符串转换为TagBuilder
EN

Stack Overflow用户
提问于 2019-07-06 11:48:01
回答 2查看 782关注 0票数 10

下面的代码将TagBuilder转换为String。什么是相反的?如何将反向String转换为TagBuilder?寻找解决方案。

Convert IHtmlContent/TagBuilder to string in C#

代码语言:javascript
复制
public static string GetString(IHtmlContent content)
{
    using (var writer = new System.IO.StringWriter())
    {        
        content.WriteTo(writer, HtmlEncoder.Default);
        return writer.ToString();
    } 
}       
EN

回答 2

Stack Overflow用户

发布于 2019-08-02 18:13:57

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

代码语言:javascript
复制
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;
}

例如:

代码语言:javascript
复制
var html = @"<div id=""div1"" class=""class1"">Something</div>";
var tagBuilder = GetTagBuilder(html);
var str = tagBuilder.ToString();

str值将为:

代码语言:javascript
复制
<div class="class1" id="div1">Something</div>
票数 7
EN

Stack Overflow用户

发布于 2021-04-18 15:25:32

使用XmlDocument的

代码语言:javascript
复制
var doc = new System.Xml.XmlDocument();
doc.LoadXml(html);
TagBuilder tagBuilder = new TagBuilder(doc.DocumentElement.Name);
tagBuilder.MergeAttributes(doc.DocumentElement.Attributes.Cast<System.Xml.XmlAttribute>().ToDictionary(x => x.Name, x => x.Value));
tagBuilder.InnerHtml = doc.DocumentElement.InnerXml;
return tagBuilder;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56911086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档