C# 使用xmlwriter在web.sitemap文件中写入xml
我将web.sitemap文件定义为C# 使用xmlwriter在web.sitemap文件中写入xml,c#,sitemap,C#,Sitemap,我将web.sitemap文件定义为 <?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="" title="" description=""> </siteMapNode> </siteMap> 但是文件仍然像
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="" description="">
</siteMapNode>
</siteMap>
但是文件仍然像以前一样,上面的代码没有写任何东西。有什么建议吗?您的代码有一些问题: 1) 首先,由于
XmlTextWriter
是一次性的,所以最好处理它(例如使用语句)。如果您将其添加到代码中,文件将被写入,但是
2) WriteString
和XmlTextWriter
的组合显然会产生转义标记
<siteMapNode title="Movies">
<siteMapNode title="Rambo" url="/Movie/Rambo.html" />
</siteMapNode>
所以我建议更改writer.WriteString(xmlements.ToString())
到xmlmelements.Save(writer)代码>。但是
3) 您没有正确格式化XML,因为root是siteMapNode
,应该是siteMap
最终代码:
List<Movie> movies = new List<Movie>() { new Movie() { MovieName = "Rambo" } };
using (var writer = new XmlTextWriter("Web.sitemap", null))
{
var xmlElements = new XElement("siteMap",
new XAttribute("title", "Movies"),
movies.Select(i => new XElement
("siteMapNode",
new XAttribute("title", i.MovieName),
new XAttribute("url", string.Format("/Movie/{0}.html", i.MovieName))
)));
xmlElements.Save(writer);
}
List movies=newlist(){new Movie(){MovieName=“Rambo”};
使用(var writer=newXMLTextWriter(“Web.sitemap”,null))
{
var xmlements=new-XElement(“站点地图”,
新片名(“片名”、“电影”),
电影。选择(i=>newXelement
(“siteMapNode”,
新XAttribute(“标题”,i.MovieName),
新的XAttribute(“url”,string.Format(“/Movie/{0}.html”,i.MovieName))
)));
xmlElements.Save(writer);
}
像这样思考,对此打100分。很好的解释,伙计
List<Movie> movies = new List<Movie>() { new Movie() { MovieName = "Rambo" } };
using (var writer = new XmlTextWriter("Web.sitemap", null))
{
var xmlElements = new XElement("siteMap",
new XAttribute("title", "Movies"),
movies.Select(i => new XElement
("siteMapNode",
new XAttribute("title", i.MovieName),
new XAttribute("url", string.Format("/Movie/{0}.html", i.MovieName))
)));
xmlElements.Save(writer);
}