どのように私はXMLに深く移動し、そこにデータを追加することができます

StackOverflow https://stackoverflow.com/questions/545735

質問

私はメモリにXmlDocumentオブジェクトをロードして、新しいのXmlElementを作成しました。今私は、パス/レポート/セクション/ホストにのXmlElementを追加しようとしていますが、私は方法がわかりません。私は簡単にXMLのルート・ノードの下にそれを追加することができますが、私はXMLでのより深いレベルを移動し、そこに追加することができる方法を見つけ出すことはできません。擬似では、私はこれを行うにしようとしています。

のdoc.SelectNodes( "/レポート/セクション/ホスト")のAppendChild(サブルート);

コード

        XmlDocument doc = new XmlDocument();

        doc.Load("c:\\data.xml");

        //host
        XmlElement subRoot = doc.CreateElement("host");

        //Name
        XmlElement ElName = doc.CreateElement("name");
        XmlText TxtName = doc.CreateTextNode("text text");
        ElName.AppendChild(TxtName);
        subRoot.AppendChild(ElName);
        doc.DocumentElement.AppendChild(subRoot);

        doc.Save("c:\\data.xml");
役に立ちましたか?

解決

の代わりにSELECTNODESのSELECTSINGLENODEを試してみてください。

XmlElement parent = (XmlElement)doc.SelectSingleNode("/report/section/hosts")
parent.AppendChild(subRoot);

他のヒント

あなたは、ほとんどがあります。代わりにSELECTSINGLENODEを使用してみてください。

XmlNode node = doc.SelectSingleNode("/report/section/hosts");
node.AppendChild(subRoot);

SelectNodesメソッドは、ノードのリストを返します。 あなたが代わりにSELECTSINGLENODEを使用する必要があります...

例えば。 (私の頭の上、Visual Studioでテストしていない)

doc.SelectSingleNode("/report/section/hosts").AppendChild(subRoot);

あなたはに追加する(root以外の)あなたのドキュメント内のXmlElementへの参照を取得する必要があります。メソッドの数は、常にXmlDocumentなどに利用できるをnoreferrer">

scroll top