【发布时间】:2023-03-24 02:59:01
【问题描述】:
我有一个关于生成sitemap.xml的问题
我的创作者代码是这样的:
XNamespace xmlns = XNamespace.Get("http://www.sitemaps.org/schemas/sitemap/0.9");
XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
XNamespace schemaLocation = XNamespace.Get("http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd");
XElement urlset = new XElement(xmlns+"urlset",
new XAttribute(XNamespace.Xmlns + "xsi", xsi),
new XAttribute(xsi + "schemaLocation", schemaLocation));
urlset.Add(new XElement("url"));
此代码生成 xml 文件,但生成的 sitemap.xml url 元素包含 xmlns="" 属性。
<urlset xmlns="..." ><url xmlns=""/> </urlset>
所有<url> 元素都包含xmlns = "" 属性。
我该如何解决这个问题?
【问题讨论】:
-
你能显示你添加Url的代码吗?
-
如果您要像
urlset.Add ( new XElement ( xmlns + "Url" ) );这样添加您的 Url 节点,那么您将不会得到空的命名空间属性......或者至少我没有 -
我编辑了那个 urlset.Add(new XElement("url"));
-
如果 url 和 urlset 都属于同一个命名空间,则您限定 urlset,
xmlns+"urlset"但不是 url
标签: c# xml linq linq-to-xml