0

私は次のコードを介してxmlを記述しました

 if (!File.Exists("d:\\s.xml"))
 {    
     XmlTextWriter textWriter = new XmlTextWriter("d:\\s.xml", null);
     textWriter.WriteStartDocument();
     textWriter.WriteStartElement("node");    
     textWriter.WriteStartElement("zone");    
     textWriter.WriteStartElement("dt");    
     textWriter.WriteStartElement("Mn");
     textWriter.WriteString("m1");
     textWriter.WriteEndElement();    
     textWriter.WriteStartElement("Dist");
     textWriter.WriteString("Colony");
     textWriter.WriteEndElement();   
     textWriter.WriteEndElement();
     textWriter.WriteEndDocument();
     textWriter.Close();
 }

これは次のように出力を与えます

<?xml version="1.0"?>
<Node>
    <Zone>
        <Dt>
            <mn>m1</mn>
            <Dist>Colony</Dist>
        </Dt>
    </Zone>
</Node>

次に、既存のxmlファイルに次のxmlを追加する必要があります

<Dt1>
    <mn>m1</mn>
    <Dist>Colony</Dist>
</Dt1>
4

2 に答える 2

2

Linq2Xml を使用して回答します

var xml = new XElement("Node",
                new XElement("Zone",
                        new XElement("Dt", 
                                new XElement("mn1", "m1"), 
                                new XElement("Dist", "Colony") 
                            )
                    )
                );

var str1 = xml.ToString();

xml.Descendants("Zone")
    .First()
    .Add(new XElement("Dt1",
                new XElement("mn1", "m1"), 
                new XElement("Dist", "Colony")));

var str2 = xml.ToString();

xml.Save(filename);
于 2012-08-13T12:47:13.357 に答える
0

次のノードをどこに追加したいのかよくわかりませんが、投稿した XML ファイルの構造を維持したいのではないかと思います。その場合は、Jon Skeet の回答を拡張すると、XElement でそれを行うことができます。

var zone = new XElement(
            "Zone",
            new XElement(
                "Dt",
                new XElement("Mn", "m1"),
                new XElement("Dist", "Colony")));

        var xml = new XElement("Node", zone);

        // append new nodes here
        zone.FirstNode.AddAfterSelf(
            new XElement(
                "Dt",
                new XElement("Mn", "m1"),
                new XElement("Dist", "Colony")));

        // save file
        xml.Save("d:\\s.xml");
于 2012-08-13T12:54:35.407 に答える