我正在使用一个生成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());
}
答案 0 :(得分:1)
有一个开源项目允许使用Razor作为一般的模板引擎:它被称为 razorengine
string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });
我认为这对你有帮助..
答案 1 :(得分: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 :(得分:0)
您不必使用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)。