在 C# 控制台应用程序中生成 HTML/XML 标记?
Generate HTML/XML Markup in C# Console Application?
我正在使用生成 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());
}
有一个开源项目允许使用 Razor 作为通用模板引擎:它被称为
razorengine
string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });
我认为这对你有帮助..
就用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);
您不必使用 StringBuilder 来输出 XML,您可以使用 LINQ 来 XML (https://msdn.microsoft.com/en-us/library/bb387061.aspx) or XmlWriter (https://msdn.microsoft.com/en-us/library/system.xml.xmlwriter(v=vs.110).aspx) or the DOM API (https://msdn.microsoft.com/en-us/library/t058x2df(v=vs.110).aspx).
我正在使用生成 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());
}
有一个开源项目允许使用 Razor 作为通用模板引擎:它被称为 razorengine
string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });
我认为这对你有帮助..
就用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);
您不必使用 StringBuilder 来输出 XML,您可以使用 LINQ 来 XML (https://msdn.microsoft.com/en-us/library/bb387061.aspx) or XmlWriter (https://msdn.microsoft.com/en-us/library/system.xml.xmlwriter(v=vs.110).aspx) or the DOM API (https://msdn.microsoft.com/en-us/library/t058x2df(v=vs.110).aspx).