如何在父元素的attribute = x中添加子元素

时间:2013-07-08 23:33:20

标签: c# xml linq-to-xml

我有一个XML文档,其结构如下:

<position index="x">
     <character>y</character>
</position>

我需要能够根据索引向位置添加新角色。例如,在index =&#34; 3&#34;的情况下,添加字符&#34; g&#34;。

我知道我可以找到具有以下内容的元素:

var query = from positions in myDoc.Descendants("position")
     where (string)positions.Attribute("index").Value == n
     select positions;

但是我无法确定是否需要类似的查询或构造来识别属性值为x的元素,然后添加子节点。

1 个答案:

答案 0 :(得分:1)

您的查询已经返回了您要添加的元素,因此归结为:

var query = from positions in myDoc.Descendants("position")
            where (string)positions.Attribute("index").Value == n
            select positions;
foreach (var position in query)
{
    position.Add(new XElement("character", "g"));
}