Получил ссылку отсюда Имя разработчика: Виджай Сиригири
Если вы пытаетесь добавить пространство имен к элементам после загрузки XML-документа, это невозможно.
Из MSDN:
Вы не можете добавлять, изменять или удалять
Определение пространства имен XML в
экземпляр XML-документа после
документ был загружен в XML
Анализатор объектной модели документа (XMLDOM).
Узлы XML, которые используются для
представлять данные в документе XML
создается при загрузке документа
в синтаксический анализатор XMLDOM. Эти узлы
постоянно связаны с их XML
атрибуты пространства имен, когда они
создано. Следовательно, пустой XML
Объявление пространства имен (xmlns = "")
добавлены к дочерним узлам этих
узлы для сохранения XML по умолчанию
атрибут пространства имен этих узлов.
Однако вы можете загрузить ввод, прочитать каждый элемент и записать его в другой документ (или в память), для которого установлено пространство имен.
Ниже приведен код, который анализирует строку xml, создает новый элемент xml вместе с префиксом пространства имен и пространством имен.
String xmlWithoutNamespace =
@"<Folio><Node1>Value1</Node1><Node2>Value2</Node2><Node3>Value3</Node3></Folio>";
String prefix ="vs";
String testNamespace = "http://www.testnamespace/vs/";
XmlDocument xmlDocument = new XmlDocument();
XElement folio = XElement.Parse(xmlWithoutNamespace);
XmlElement folioNode = xmlDocument.CreateElement(prefix, folio.Name.LocalName, testNamespace);
var nodes = from node in folio.Elements()
select node;
foreach (XElement item in nodes)
{
var node = xmlDocument.CreateElement(prefix, item.Name.ToString(), testNamespace);
node.InnerText = item.Value;
folioNode.AppendChild(node);
}
xmlDocument.AppendChild(folioNode);
xmlDocument теперь содержит xml с каждым узлом с префиксом против