Как я добавляю XElement к документу, избегая “неправильно структурированного документа” ошибка?

        // Remove element with ID of 1
        var userIds = from user in document.Descendants("Id")
                       where user.Value == "1"
                       select user;

        userIds.Remove();

        SaveAndDisplay(document);

        // Add element back
        var newElement = new XElement("Id", "0", 
            new XElement("Balance", "3000"));
        document.Add(newElement);

        SaveAndDisplay(document);

Добавить отдаленный квартал элемента является проблемой. Как тогда, когда это добирается до добавления, что это указывает:

Эта операция создала бы неправильно структурированный документ.

Какую глупую ошибку я делаю?

Править:

Да, я читал как XDocument, нет XElement. Совет относительно того, когда одобрить один или другой?

21
задан Steve Guidi 24 January 2013 в 20:24
поделиться

2 ответа

Похоже, вы пытаетесь добавить новый элемент в качестве ребенка корня вашего документа. Если это так, то вам нужно изменить форму Добавить оператор для следующего.

var newElement = new XElement("Id", "0", new XElement("Balanace", "3000"));
document.Root.Add(newElement);

Добавление непосредственно к документу добавляет другой корневой элемент, который нарушает структуру XML.

40
ответ дан 29 November 2019 в 20:09
поделиться

Вы эффективно пытаетесь добавить новый корневой элемент, который эти объекты не любят. Я предполагаю, что документ это XDocument? Поместите его дальше внутри корневого узла, добавив его к корневому узлу. Использование:

Document.root.add (Новорение) или Document.firstnode.add (Новоменчество)

8
ответ дан 29 November 2019 в 20:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: