добавить пространство имен в XML-документ на С#

У меня есть следующий xml

<book>
   <chapter>this is a sample text</chapter>
</book>

и нужно добавить к нему пространство имен, чтобы оно было похоже на приведенное ниже

<ns0:book xmlns:ns0="http://mybookurl/sample">
   <chapter>this is a sample text</chapter>
</ns0:book>

Я попробовал предложения Greco, но это не сработало. Создание определенного XML-документа с использованием пространств имен в C#

будем признательны за любую помощь!

Спасибо


person Walid Frihi    schedule 06.01.2010    source источник


Ответы (1)


Это можно сделать, загрузив Xml в XmLDocument, затем найдя каждый узел, к которому вы хотите добавить ns0, и задав для этого свойства Prefix XmlNodes значение "ns0".

Что-то вроде этого:

XmlDocument myDoc = new XmlDocument();
myDoc.LoadXml("my_file.xml");

foreach (XmlNode eachBook in myDoc.GetElementsByTagName("book")) {
    eachBook.Prefix = "ns0";
}

myDoc.Save("my_changed_file.xml");
person Adam Crossland    schedule 06.01.2010
comment
как насчет пространства имен 'mybookurl/sample'? я пробовал выше, но вывод такой же, как ввод. - person Walid Frihi; 07.01.2010