- PR -

XmlDocumentにXmlNodeの追加

1
投稿者投稿内容
ひょこ
会議室デビュー日: 2004/07/16
投稿数: 18
投稿日時: 2004-07-29 16:51
現在、XmlDocumentにXmlNodeの追加ができず困っています。

AppendChildメソッドを用いて、XmlElement等の追加は出来るのですが、
XmlNodeのインスタンス自体をXmlDocumentに追加したいと思っています。
(別クラスのメソッドで、XmlNodeを返します。)

何かいい方法は無いでしょうか。
ご教授願います。

なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-07-29 17:06
引用:

ひょこさんの書き込み (2004-07-29 16:51) より:
現在、XmlDocumentにXmlNodeの追加ができず困っています。

AppendChildメソッドを用いて、XmlElement等の追加は出来るのですが、
XmlNodeのインスタンス自体をXmlDocumentに追加したいと思っています。
(別クラスのメソッドで、XmlNodeを返します。)


どうできないんでしょう?
XmlElementができるというのはどういう意味と認識したらいいんでしょう?
他のクラスが返すXmlNodeの実体は何ですか?
成功したXmlElementを取得したのと状況が異なりませんか?
ひょこ
会議室デビュー日: 2004/07/16
投稿数: 18
投稿日時: 2004-07-29 17:13
XmlDocument document = new XmlDocument();
XmlElement root = document.CreateElement("ROOT");
XmlElement child = document.CreateElement("Child");
root.AppendChile(child);

という感じでは、うまくいくのですが、
XmlNode node = 自作クラス.XmlNodeを返すメソッド;
root.AppendChile(node);
とすると、
以下のようなエラーが返されます。

指定したノードをこのノードの有効な子ノードとして挿入できません。
指定されたノードの種類が正しくありません。

このような状態です。

ひょこ
会議室デビュー日: 2004/07/16
投稿数: 18
投稿日時: 2004-07-29 17:13
XmlDocument document = new XmlDocument();
XmlElement root = document.CreateElement("ROOT");
XmlElement child = document.CreateElement("Child");
root.AppendChile(child);

という感じでは、うまくいくのですが、
XmlNode node = 自作クラス.XmlNodeを返すメソッド;
root.AppendChile(node);
とすると、
以下のようなエラーが返されます。

指定したノードをこのノードの有効な子ノードとして挿入できません。
指定されたノードの種類が正しくありません。

このような状態です。

ひょこ
会議室デビュー日: 2004/07/16
投稿数: 18
投稿日時: 2004-07-29 17:13
XmlDocument document = new XmlDocument();
XmlElement root = document.CreateElement("ROOT");
XmlElement child = document.CreateElement("Child");
root.AppendChile(child);

という感じでは、うまくいくのですが、
XmlNode node = 自作クラス.XmlNodeを返すメソッド;
root.AppendChile(node);
とすると、
以下のようなエラーが返されます。

指定したノードをこのノードの有効な子ノードとして挿入できません。
指定されたノードの種類が正しくありません。

このような状態です。

きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-07-29 17:21
ひょこさん、こんばんは。

System.Xml.XmlDocument.ImportNode メソッドについて調べてみて下さい。
ひょこ
会議室デビュー日: 2004/07/16
投稿数: 18
投稿日時: 2004-07-29 17:36
解決しました。
途中ドキュメントタイプのノードであると、エラーになりましたが、
ImportするノードのFirstChildノードに変更することで、
無事思い通りの動きになりました。
ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)