Создание XML-документа с использованием Linq To XML - PullRequest
1 голос
/ 05 мая 2010

С учетом следующего кода:

    string xml = "";
    //alternativley: string xml = "<people />";

    XDocument xDoc = null;

    if (!string.IsNullOrEmpty(xml))
    {
        xDoc = XDocument.Parse(xml);
        xDoc.Element("people").Add(
            new XElement("person", "p 1")
        );
    }
    else
    {
        xDoc = new XDocument();
        xDoc.Add(new XElement("people",
            new XElement("person", "p 1")
            ));
    }

Как видите, если переменная xml пуста, мне нужно вручную создать узел руда и добавить человека корневому узлу, а если это не так, я просто добавляю элемент people

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

1 Ответ

1 голос
/ 05 мая 2010

Вы имеете в виду версию XContainer.Element, которая добавляет элемент, если его еще нет? Не то, чтобы я знал ... хотя я думаю, вы могли бы написать один:

public static XElement FindOrAdd(this XContainer container, XName name)
{
    XElement ret = container.Element(name);
    if (ret == null)
    {
        ret = new XElement(name);
        container.Add(ret);
    }
    return ret;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...