XML的子元素上的次要xmlns

本文关键字:xmlns 元素 XML | 更新日期: 2023-09-27 18:01:24

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

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

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

XML的子元素上的次要xmlns

进一步的XElements将有一个空的名称空间,因为您没有为它们指定任何名称空间。然后需要在子元素上指出这一点,因为它不同于父名称空间。不幸的是,如果你想"修复"这个问题,你需要为所有的子文档指定相同的命名空间。

幸运的是,有一个简短的代码可以做到这一点:

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

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

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

例如:

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

代替XName.Get