C# WPF でプログラミングをしています。
TreeView に XML の階層構造を表示させて、ある項目を選択し、ボタンをクリックするとその項目の子ノードが追加されるようにするプログラムを作っています。
選択した項目(TreeView.SelectedItem(Object型)) を、DOMツリーの要素ノード (XmlElement型) にキャストし、それに新しく作った要素ノード(XmlElement型)をつなげるといったようにしているのですが、その際「挿入するノードは、異なるドキュメント コンテキストのものです。」のエラーが発生してしまいます。
XmlElement tvi = treeView.SelectedItem as XmlElement;
XmlElement item = doc.CreateElement("item");
tvi.PrependChild(item); // エラー発生箇所
※ doc は XmlDocument のインスタンスです。
解決策を教えてください。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
この回答への補足
回答ありがとうございます。
XmlDocument.ImportNodeを通すことでエラーはでなくなりましたが、今度はXMLにはなにも書き込まれなくなってしまいました。
改良したコードはこんな感じです。
XmlDocument doc = new XmlDocument();
doc.Load("");
XmlElement tvi = treeView.SelectedItem as XmlElement;
XmlNode r = doc.ImportNode(tvi, true);
XmlElement item = doc2.CreateElement("item");
r.PrependChild(item);
doc.Save("");
どうすればいいのでしょうか?何度も申し訳ありませんがよろしくお願いします。
解決しました。
新しく XmlDocument を定義して Import するのではなく、
SelectedItem の OwnerDocument をそのまま操作することで目的を達成できました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- その他(プログラミング・Web制作) pythonでのカーソル移動がずれる 2 2023/07/30 08:51
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- JavaScript jsで診断コンテンツのページ内切り替えについて 1 2023/04/14 17:31
- 英語 「第1および第2の要素」の英語 4 2022/03/24 09:55
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- PDF PDF elementで白文字?というか見えない文字を表示させる方法を教えてください 1 2022/05/19 03:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
昔Winnyってありましたけど、あ...
-
同じタグ名の項目取得
-
ツリービューの使い方が・・・
-
各ノードの行数取得
-
C#でtreeviewの指定ノードを選...
-
XML文書の指定した属性値を持つ...
-
木のなぞり順をかえるプログラ...
-
C言語:文字列の並び替え
-
TreeVIewのノード名を編集する...
-
コンテキストメニュークリック...
-
2分探索木の高さを求めるプロ...
-
ツリービューのノードをダブル...
-
ルート要素ノードが2個ある場合?
-
2分木と双方向線形リストを同時...
-
あるノードリストに、特定の名...
-
最長経路探索
-
東芝のDynabookなのですがアン...
-
タグの有無の判定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
同じタグ名の項目取得
-
あるノードリストに、特定の名...
-
ノードとは
-
TreeView の初期表示について
-
ツリービューのノードをダブル...
-
ノード数とは?
-
コンテキストメニュークリック...
-
XML文書の指定した属性値を持つ...
-
C#でtreeviewの指定ノードを選...
-
複数のマックPCによる数値計算...
-
VB6.0ツリービューについて
-
TreeViewの再表示のちらつきを...
-
VB6.0でDOMを使用して...
-
vbsのDOMDocumentで要素のText...
-
TreeViewで複数ノードの選択は...
-
C# TreeView 効率良いノード追...
おすすめ情報