2013-05-17 3 views
2

Как я писал в самом предмете, как я могу это сделать?
Обратите внимание, что решение, как это не уместно, как я хочу, чтобы создать дочерние узлы динамически с помощью запуска ..Как сгенерировать XML-файл динамически с помощью XDocument?

new XDocument(
    new XElement("root", 
     new XElement("someNode", "someValue")  
    ) 
) 
.Save("foo.xml"); 

Я предполагаю, что это было достаточно ясно, что первый раз, но я буду писать снова:

Мне нужно иметь возможность добавлять дочерние узлы к указанному родительскому узлу во время работы, в текущем синтаксисе, который я написал, это статический сгенерированный xml, который не способствует мне вообще, потому что все заранее известно, что не так, как мой дело.

Как вы это сделаете с Xdocument, есть ли у вас прочь?

+1

Есть вы что-то пробовали? – tnw

+0

Я пробовал то, что я прошу, существует так много методов xml, что он делает меня xonfused: 'xmlWriter'' Xpath'' Xdocument'' xmlDocument' – CSharper

ответ

4

Очень простой

Пожалуйста, обновите ваш код соответственно

XmlDocument xml = new XmlDocument(); 
XmlElement root = xml.CreateElement("children"); 
xml.AppendChild(root); 

XmlComment comment = xml.CreateComment("Children below..."); 
root.AppendChild(comment); 

for(int i = 1; i < 10; i++) 
{ 
    XmlElement child = xml.CreateElement("child"); 
    child.SetAttribute("age", i.ToString()); 
    root.AppendChild(child); 
} 
string s = xml.OuterXml; 
+0

Что такое динамический об этом? – tnw

+0

новый XElement («someNode», «someValue») Как известно, ему необходимо использовать метод outleast frame для реализации динамического значения –

+0

Эта строка даже не существует в вашем коде. * И * вы даже не используете XDocument, который ищет OP. Я не думаю, что вы понимаете, что означает слово «динамический». Пока ничего не сделано, динамично. – tnw

8

Если документ имеет определенную структуру и должны быть заполнены с динамическими данными, вы можете идти, как это:

// Setup base structure: 
var doc = new XDocument(root); 
var root = new XElement("items"); 
doc.Add(root); 

// Retrieve some runtime data: 
var data = new[] { 1, 2, 3, 4, 5 }; 

// Generate the rest of the document based on runtime data: 
root.Add(data.Select(x => new XElement("item", x))); 
+0

+1 для реального динамического решения – tnw

+1

В первой строке вашего кода используется 'root', который объявляется во второй строке ... – vojta

Смежные вопросы