【问题标题】:Generate HTML/XML Markup in C# Console Application?在 C# 控制台应用程序中生成 HTML/XML 标记?
【发布时间】:2016-12-02 21:15:27
【问题描述】:

我正在开发一个生成 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 razor console-application


    【解决方案1】:

    只需使用 System.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);
    

    【讨论】:

      【解决方案2】:

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

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

      我认为这对你有帮助..

      【讨论】:

        【解决方案3】:
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-23
        • 2011-01-18
        • 2011-03-29
        相关资源
        最近更新 更多