Silverlight XML在特殊位置添加节点(使用LINQ)

Silverlight XML在特殊位置添加节点(使用LINQ),xml,silverlight,linq-to-xml,Xml,Silverlight,Linq To Xml,我有一个XML,看起来像这样 <root> <name value="test"> <contact> <id>1</id> <Name>myname mylastname</Name> <phone> <number1_1>123456789</numbe

我有一个XML,看起来像这样

<root>
    <name value="test">
        <contact>
            <id>1</id>
            <Name>myname mylastname</Name>
            <phone>
                <number1_1>123456789</number1_1>
                <number2_1>987654321</number2_1>
            </phone>
        </contact>
        <contact>
            <id>2</id>
            <Name>myname mylastname</Name>
            <phone>
                <number1_2>123456789</number1_2>
                <number2_2>987654321</number2_2>
            </phone>
        </contact>
    </name>
    <name value="test1">
        <contact>
            <id>1</id>
            <Name>myname mylastname</Name>
            <phone>
                <number1_1>123456789</number1_1>
                <number2_1>987654321</number2_1>
            </phone>
        </contact>
    </name>
</root>
有人能给我一个提示或一行代码我怎么能做到这一点

元素(“名称”)

返回与名称匹配的第一个元素。这就是为什么您需要查询
元素

.Elements("Name").First(x => (string)x.Attribute("value") == "test1")
它应该会起作用。整个代码如下所示:

xmldoc.Element("root")
      .Elements("Name").First(x => (string)x.Attribute("value") == "test1").Add( 
    new XElement("contact",
            new XElement("id", "2"),
            new XElement("Name", "notset"),
            new XElement("phone",
                new XElement("number1_1", "notset"),
                new XElement("number2_1", "notset")

            )
        )
    );
xmldoc.Element("root")
      .Elements("Name").First(x => (string)x.Attribute("value") == "test1").Add( 
    new XElement("contact",
            new XElement("id", "2"),
            new XElement("Name", "notset"),
            new XElement("phone",
                new XElement("number1_1", "notset"),
                new XElement("number2_1", "notset")

            )
        )
    );