Как вставить новый узел с помощью LINQ to XML, когда доступны только данные XML? - PullRequest
3 голосов
/ 07 октября 2011

У меня есть XML-файл со следующей структурой:

<connections>
  <connection>   
    <serverName>serverName1</serverName>
    <dbName>dbName1</dbName>   
  </connection>
</connections>

У меня новое подключение в виде текстовых данных, как показано ниже:

var xml="<connection><serverName>serverName2</serverName><dbName>dbName2</dbName></connection>";

var xDocument = XDocument.Load(HttpContext.Current.Server.MapPath(this.XmlDataFilePath));

Как я могу вставить этот новый узелк моему документу?

Я пробовал это, но это не удалось:

 xDocument.Root.AddAfterSelf(xml);

 xDocument.Save(HttpContext.Current.Server.MapPath(this.XmlDataFilePath));

Спасибо,

1 Ответ

11 голосов
/ 07 октября 2011

Разобрать XML в XElement, а затем добавить следующее:

var element = XElement.Parse(xml);
xDocument.Root.Add(element);

Обратите внимание, что это , а не AddAfterSelf - вы не можете добавить второй корневой элемент в качестве узлапервый.Код выше добавит новый дочерний элемент после любых существующих, в корневом элементе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...