1
<root>
    <element1>innertext</element1>
    <element2>innertext</element2>
    <element3>
        <child1>innertext</child1>
    </element3>
</root>

上記のxml構造があります。

xml ファイル (作成済み) を「追加」して、element3> 内に別の「子」を追加すると、次のようになります。

<root>
    <element1>innertext</element1>
    <element2>innertext</element2>
    <element3>
        <child1>innertext</child1>
        <child2>innertext</child2>
    </element3>
</root>

xml および/または Xpath への Linq は素晴らしいでしょう

編集:私はこれをやってみました:

XElement doc = XElement.Load(mainDirectory);
XElement newElem = doc.Elements("element3").First();
newElem.Add(new XElement("child2", "child2innertext"));
doc.Add(newElem);
doc.Save(mainDirectory); 
4

3 に答える 3

3
XmlDocument xDoc = new XmlDocument();
        xDoc.Load("filename.xml");

        foreach (XmlNode xNode in xDoc.SelectNodes("/root/element3"))
        {
            XmlElement newElement = xDoc.CreateElement("Child2");


            xNode.AppendChild(newElement);
            xNode.InnerText = "myInnerText";
        }
于 2012-11-30T10:41:50.027 に答える
2

XDocument を使用すると、次のようにこれを実現できます。

 string xml = "<root><element1>innertext</element1><element2>innertext</element2><element3><child1>innertext</child1></element3></root>";

 var doc = XDocument.Parse(xml); //use XDocument.Load("filepath"); in case if your xml is in a file.

 var el3 = doc.Descendants("element3").FirstOrDefault();

 el3.Add(new XElement("child2", "innertext"));
于 2012-11-30T10:42:39.460 に答える
1

このLINQPADの例を試してください

void Main()
{
var xml = 
@"<root>
        <element1>innertext</element1>
        <element2>innertext</element2>
        <element3>
            <child1>innertext</child1>
        </element3>
    </root>";

    var doc = XDocument.Parse(xml); 
    doc.Root.Element("element3")
    .Add(new XElement("child2", "innertext"));

    doc.Dump();
}
于 2012-11-30T10:42:26.937 に答える