我的XML的子元素上的辅助xmlns

时间:2014-05-02 10:50:35

标签: c# xml xml-namespaces xname

我正在创建一个xml文件,并尝试将命名空间附加到根节点。

    doc = new XDocument(new XElement(XName.Get("urlset",  "http://www.sitemaps.org/schemas/sitemap/0.9"),

但是,当我这样做时,它会在下一个节点(XDocument的子节点)附加一个空名称空间?

1 个答案:

答案 0 :(得分:1)

进一步XElements将具有空命名空间,因为您没有为它们指定任何命名空间。这需要在子元素上进行,因为它与父命名空间不同。不幸的是,如果你想“修复”这个,你需要为所有子文档指定相同的命名空间。

幸运的是,这是一个简写代码:

XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9";

然后像这样初始化所有元素:

new XElement(ns + ELEMENT_NAME, ...);

e.g:

new XElement(ns + "urlset", ...);

而不是XName.Get