Вторичный xmlns дочернего элемента моего XML

Я создаю файл XML и пытаюсь добавить пространство имен к корневому узлу.

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

Однако, когда я делаю это, он добавляет пустое пространство имен на следующий узел, дочерний узел XDocument?

1 ответ

В дальнейшем XElements будет иметь пустое пространство имен, так как вы не указали для них пространства имен. Затем его нужно указать на дочерние элементы, так как он отличается от родительского пространства имен. К сожалению, вам нужно указать одно и то же пространство имен для всех дочерних документов, если вы хотите "исправить" это.

К счастью, есть сокращенный код для этого:

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

Затем инициализируйте все ваши элементы так:

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

например:

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

вместо XName.Get,

Другие вопросы по тегам