3

正如我在主题本身中所写,我该怎么做?
请注意,这样的解决方案不合适,因为我想通过运行动态创建子节点..

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

我想这在第一次时已经足够清楚了,但我会再写一遍:

我需要能够在运行时将子节点添加到给定的父节点,在我编写的当前语法中,这是静态生成的 xml,它对我没有任何贡献,因为一切都是预先知道的,这不是我的情况.

您将如何使用 Xdocument 进行操作,有吗?

4

2 回答 2

9

如果文档具有已定义的结构并且应该填充动态数据,则可以这样:

// 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)));
于 2013-05-17T13:44:28.153 回答
6

很简单

请相应地更新您的代码

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;
于 2013-05-17T13:17:17.197 回答