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

我正在尝试制作一个 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 />,我真的需要有这么多不同的行来构建标签的一部分吗?


注意:是的,我可以直接将内容写入文件,但如果可能的话,我更喜欢更智能的方式,这样可以减少人为错误。


叮当猫咪
浏览 219回答 3
3回答

GCT1015

您可以随时使用Obisoft.HSharp:&nbsp; &nbsp; var Document = new HDoc(DocumentOptions.BasicHTML);&nbsp; &nbsp; Document["html"]["body"].AddChild("div");&nbsp; &nbsp; Document["html"]["body"]["div"].AddChild("a", new HProp("href", "/#"));&nbsp; &nbsp; Document["html"]["body"]["div"].AddChild("table");&nbsp; &nbsp; Document["html"]["body"]["div"]["table"].AddChildren(&nbsp; &nbsp; &nbsp;new HTag("tr"),&nbsp; &nbsp; &nbsp;new HTag("tr", "SomeText"),&nbsp; &nbsp; &nbsp;new HTag("tr", new HTag("td")));&nbsp; &nbsp; var Result = Document.GenerateHTML();&nbsp; &nbsp; Console.WriteLine(Result);或System.Xml.Linq:&nbsp; &nbsp; var html = new XElement("html",&nbsp; &nbsp; new XElement("head",&nbsp; &nbsp; &nbsp; &nbsp; new XElement("title", "My Page")&nbsp; &nbsp; ),&nbsp; &nbsp; new XElement("body",&nbsp; &nbsp; &nbsp; &nbsp; "this is some text"&nbsp; &nbsp; ));
打开App,查看更多内容
随时随地看视频慕课网APP