Вставить элемент в определенные теги - PullRequest
2 голосов
/ 20 июля 2010

Я пытаюсь вставить элемент в определенную точку в моем файле, а затем сохранить этот файл.Тем не менее, я не могу понять это правильно.Мой XML-макет выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<Settings>
   <Items />
   <Users />
</Settings>

Это мой текущий код:

            XDocument xd = XDocument.Load(@"C:\test.xml");

            var newPosition =  xdoc.Root.Elements("Users");
            //I've tried messing around with newPosition methods


            XElement newItem = new XElement("User",
                new XAttribute("Name", "Test Name"),
                new XAttribute("Age", "34"),

                ); 

            //how can I insert 'newItem' into the "Users" element tag in the XML file?

            xd.Save(new StreamWriter(@"C:\test.xml"));

Я хотел бы использовать Linq to XML для вставки 'newItem' в тег.Спасибо за любую помощь в этом.

1 Ответ

2 голосов
/ 20 июля 2010

Просто найдите элемент Users и добавьте его:

// Note that it's singular - you only want to find one
XElement newPosition = xdoc.Root.Element("User");
XElement newItem = new XElement("User",
     new XAttribute("Name", "Test Name"),
     new XAttribute("Age", "34"));

// Add the new item to the collection of children
newPosition.Add(newItem);

Использование здесь var сбило вас с толку - потому что тип newPosition в вашем коде действительно IEnumerable<XElement> ... вы находили все User элементы. (Хорошо, на самом деле был бы только один элемент, но это не имеет значения ... это все еще концептуально последовательность.)

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