在C#控制台应用程序中生成HTML/XML标记

本文关键字:HTML XML 标记 控制台 应用程序 | 更新日期: 2023-09-27 17:59:07

我正在使用一个生成XML/HTML输出的控制台应用程序。目前,我有下面的代码,其中包括硬编码的意大利面条标记。

有可能使用剃须刀或其他工具来改善这一点并使其更清洁吗?

foreach (var file in _files)
{
    TagLib.File f = TagLib.File.Create(file.FullName);
    string title = f.Tag.Title;
    string url = _urlPrefix + file.Name;
    StringBuilder sb = new StringBuilder();
    sb.Append("<item>'n");
    sb.AppendFormat("'t<title>{0}</title>'n", HttpUtility.HtmlEncode(title));
    sb.AppendFormat("'t<pubDate>{0}</pubDate>'n", file.CreationTimeUtc.ToString("r"));
    sb.AppendFormat("'t<guid isPermaLink='"false'">{0}</guid>'n", url);
    sb.AppendFormat("'t<enclosure url='"{0}'" length='"{1}'" type='"audio/mpeg'" />'n", url, file.Length);
    sb.Append("'t<itunes:subtitle></itunes:subtitle>'n");
    sb.Append("'t<itunes:summary></itunes:summary>'n");
    sb.Append("</item>'n");
    items.AppendLine(sb.ToString());
}

在C#控制台应用程序中生成HTML/XML标记

只需使用系统即可。XML类来帮助您。

https://msdn.microsoft.com/pt-br/library/system.xml(v=vs.110).aspx

示例代码:

XmlDocument doc = new XmlDocument();
XmlElement el = (XmlElement)doc.AppendChild(doc.CreateElement("Foo"));
el.SetAttribute("Bar", "some & value");
el.AppendChild(doc.CreateElement("Nested")).InnerText = "data";
Console.WriteLine(doc.OuterXml);

有一个开源项目允许使用Razor作为通用模板引擎:它被称为唑仑精

 string template = "Hello @Model.Name! Welcome to Razor!";
 string result = Razor.Parse(template, new { Name = "World" });

我认为这对你有帮助。。

您不必使用StringBuilder来输出XML,您可以使用LINQ to XML(https://msdn.microsoft.com/en-us/library/bb387061.aspx)或XmlWriter(https://msdn.microsoft.com/en-us/library/system.xml.xmlwriter(v=vs.110).aspx)或DOM API(https://msdn.microsoft.com/en-us/library/t058x2df(v=vs.110).aspx).