Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用xmlwriter在web.sitemap文件中写入xml_C#_Sitemap - Fatal编程技术网

C# 使用xmlwriter在web.sitemap文件中写入xml

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> 但是文件仍然像

我将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>

但是文件仍然像以前一样,上面的代码没有写任何东西。有什么建议吗?

您的代码有一些问题:

1) 首先,由于
XmlTextWriter
是一次性的,所以最好
处理它(例如使用
语句)。如果您将其添加到代码中,文件将被写入,但是

2)
WriteString
XmlTextWriter
的组合显然会产生转义标记

&lt;siteMapNode title="Movies"&gt;
  &lt;siteMapNode title="Rambo" url="/Movie/Rambo.html" /&gt;
&lt;/siteMapNode&gt;
所以我建议更改
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);
}