为了账号安全,请及时绑定邮箱和手机立即绑定

在 C# 中生成 HTML 的最干净的方法是什么?

在 C# 中生成 HTML 的最干净的方法是什么?

C#
叮当猫咪 2021-10-09 14:49:53
我正在尝试制作一个 C# 程序,它接受一个 XML 文件并将其转换为 HTML 文件,最明显的方法是使用一个HtmlTextWriter对象,但我需要 6 行代码来编写一个标签,一个属性、一行内容和一个结束标记。有没有更清洁/更有效的方法来做到这一点?该程序使用 XML 文件(由 XML 架构定义的格式)来自定义和填充带有数据的 HTML 模板。一个例子如下所示:static string aFileName;static XmlDocument aParser;static HtmlTextWriter HTMLIOutput;static StringWriter HTMLIBuffer;static StreamWriter HTMLOutIFile;static HtmlTextWriter HTMLEOutput;static StringWriter HTMLEBuffer;static StreamWriter HTMLOutEFile;HTMLIBuffer = new StringWriter();HTMLIOutput = new HtmlTextWriter(HTMLIBuffer);XmlElement feed = aParser.DocumentElement;HTMLIOutput.WriteBeginTag("em");HTMLIOutput.WriteAttribute("class", "updated");HTMLIOutput.Write(HtmlTextWriter.TagRightChar);HTMLIOutput.Write("Last updated: " + feed.SelectSingleNode("updated").InnerText.Trim());HTMLIOutput.WriteEndTag("em");HTMLIOutput.WriteLine();HTMLIOutput.WriteLine("<br>");要编写诸如 之类的东西<em class="updated">Last updated: 07/16/2018</em><br />,我真的需要有这么多不同的行来构建标签的一部分吗?注意:是的,我可以直接将内容写入文件,但如果可能的话,我更喜欢更智能的方式,这样可以减少人为错误。
查看完整描述

3 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

您可以随时使用Obisoft.HSharp:


    var Document = new HDoc(DocumentOptions.BasicHTML);

    Document["html"]["body"].AddChild("div");

    Document["html"]["body"]["div"].AddChild("a", new HProp("href", "/#"));

    Document["html"]["body"]["div"].AddChild("table");

    Document["html"]["body"]["div"]["table"].AddChildren(

     new HTag("tr"),

     new HTag("tr", "SomeText"),

     new HTag("tr", new HTag("td")));

    var Result = Document.GenerateHTML();

    Console.WriteLine(Result);

或System.Xml.Linq:


    var html = new XElement("html",

    new XElement("head",

        new XElement("title", "My Page")

    ),

    new XElement("body",

        "this is some text"

    )

);


查看完整回答
反对 回复 2021-10-09
  • 3 回答
  • 0 关注
  • 215 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信