どのように私はXMLに深く移動し、そこにデータを追加することができます
-
23-08-2019 - |
質問
私はメモリに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">
所属していません StackOverflow