C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

XMLの書き込み


(過去ログ 7 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■7413 / inTopicNo.1)  XMLの書き込み
  
□投稿者/ スライム 一等兵(38回)-(2006/10/11(Wed) 10:14:17)

分類:[VB.NET] 


分類:[VB.NET] 

いつもお世話になっています
環境はWindowsXPでVB2003を使用しています
http://www.atmarkit.co.jp/fdotnet/easyxml/easyxml04/easyxml04_02.html
上記ページを参考に作っています
フォームにテキストボックス3つとボタンを設置して
- <住所録>
- <ID id="0001">
<名前>名前</名前>
<住所>住所</住所>
</ID>
</住所録>
と言うようなXMLファイルを作ろうとしています。
参考ページを見つつ、作っているんですが書き込み時にエラーが発生していまい終了していまいます
以下ボタンをクリックした時のイベントです
Dim doc As New XmlDocument

Dim xmlDecl As XmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", Nothing)
doc.AppendChild(xmlDecl)

Dim root As XmlElement = doc.CreateElement("住所録")
doc.AppendChild(root)

Dim idE As XmlElement = doc.CreateElement("ID")
doc.AppendChild(idE)
Dim idatt As XmlAttribute = doc.CreateAttribute("id")
idatt.Value = txt_id.Text
root.AppendChild(idatt)

Dim nE As XmlElement = doc.CreateElement("名前")
nE.Value = txt_name.Text
root.AppendChild(nE)

Dim aE As XmlElement = doc.CreateElement("住所")
aE.Value = txt_address.Text
root.AppendChild(aE)

doc.Save("c:\Address.xml")

実行時、Dim idE As XmlElement = doc.CreateElement("ID")の箇所でエラーが発生してしまいます。
どの様な記述をしてあげれば良いのでしょうか?
また、他の箇所において明らかに間違っていると言う所があればご指摘または、アドバイス頂けないでしょうか?
お願いします

0
引用返信 編集キー/
■7416 / inTopicNo.2)  Re[1]: XMLの書き込み
□投稿者/ be 二等兵(1回)-(2006/10/11(Wed) 11:15:26)

分類:[VB.NET] 

> 実行時、Dim idE As XmlElement = doc.CreateElement("ID")の箇所でエラーが発生してしまいます。

エラーの種類がわかんなきゃ答えようがないと思うけど…?

>また、他の箇所において明らかに間違っていると言う所があればご指摘または、アドバイス頂けないでしょうか?

IDノードとidアトリビュートが微妙な場所にくっつきそうですな

0
引用返信 編集キー/
■7417 / inTopicNo.3)  Re[1]: XMLの書き込み
□投稿者/ επιστημη 中佐(212回)-(2006/10/11(Wed) 11:26:41)

分類:[VB.NET] 

2006/10/11(Wed) 11:29:36 編集(投稿者)

> Dim root As XmlElement = doc.CreateElement("住所録")
> doc.AppendChild(root)
>
> Dim idE As XmlElement = doc.CreateElement("ID")
> doc.AppendChild(idE)
>
> 実行時、Dim idE As XmlElement = doc.CreateElement("ID")の箇所でエラーが発生してしまいます。

<ID>は<住所録>の子ノードなんだから root.AppendChild(idE) ぢゃねぇですか?

# あれ? だとしてもその行でエラーとなるはずないし… VBオンチですんません


0
引用返信 編集キー/
■7419 / inTopicNo.4)  Re[2]: XMLの書き込み
□投稿者/ Hongliang 曹長(97回)-(2006/10/11(Wed) 11:50:56)
Hongliang さんの Web サイト

分類:[VB.NET] 

全角英数・半角カナは XML の要素名には使えないはずですよ?

0
引用返信 編集キー/
■7422 / inTopicNo.5)  Re[3]: XMLの書き込み
□投稿者/ επιστημη 中佐(213回)-(2006/10/11(Wed) 13:29:54)

分類:[VB.NET] 

> 全角英数・半角カナは XML の要素名には使えないはずですよ?

やってみた。

「XmlException : 'I'文字、16進数値 0xFF29 を名前に含むことはできません。」
ですって。

# だぁから"どんなエラーか書いてくれ"なのにぃ
# なにが哀しうて"わかりません"/"動きません"/"うまくいきません"としか書けないんだろ(ぷんぷん)


0
引用返信 編集キー/
■7424 / inTopicNo.6)  Re[4]: XMLの書き込み
□投稿者/ スライム 一等兵(39回)-(2006/10/11(Wed) 14:53:24)

分類:[VB.NET] 

Hongliangさん、επιστημηさん返事が遅れてしまってすみません
全角英数が使えないと言う「ID」と言う部分がひっかかっていたんですね
そこはすぐに別の名前にする事で回避しました
doc.AppendChild(idE)の部分はroot.AppendChild(idE)で正解でした

nE.Value = txt_name.Textの部分で
System.InvalidOperationException' のハンドルされていない例外が system.xml.dll で発生しました。
追加情報 : ノードの種類 : Element で値を設定できません。
と出てしまいました。
どの様にテキストを追加してあげれば良いんでしょうか?

それとroot.AppendChild(idatt)の部分で
'System.InvalidOperationException' のハンドルされていない例外が system.xml.dll で発生しました。
追加情報 : 指定したノードをこのノードの有効な子ノードとして挿入できません。指定されたノードの種類が正しくありません。
と出てしまいました。
これを消せば問題はないんですが属性が追加されません。
お願いします

0
引用返信 編集キー/
■7425 / inTopicNo.7)  Re[5]: XMLの書き込み
□投稿者/ επιστημη 中佐(214回)-(2006/10/11(Wed) 15:06:40)

分類:[VB.NET] 

> nE.Value = txt_name.Textの部分で
> System.InvalidOperationException' のハンドルされていない例外が system.xml.dll で発生しました。
> 追加情報 : ノードの種類 : Element で値を設定できません。
> と出てしまいました。
> どの様にテキストを追加してあげれば良いんでしょうか?

ElementにTextNodeをAppendChildします。

Dim doc As New XmlDocument
Dim xmlDecl As XmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", Nothing)
doc.AppendChild(xmlDecl)
Dim root As XmlElement = doc.CreateElement("住所録")
doc.AppendChild(root)

Dim idE As XmlElement = doc.CreateElement("項目")
root.AppendChild(idE)
Dim idatt As XmlAttribute = doc.CreateAttribute("id")
idatt.Value = "門前払い"
idE.Attributes.Append(idatt)

Dim nE As XmlElement = doc.CreateElement("名前")
nE.AppendChild(doc.CreateTextNode("馬の骨"))
idE.AppendChild(nE)

Dim aE As XmlElement = doc.CreateElement("住所")
aE.AppendChild(doc.CreateTextNode("どこぞ"))
idE.AppendChild(aE)

doc.Save("c:\address.xml")


0
引用返信 編集キー/
■7426 / inTopicNo.8)  Re[5]: XMLの書き込み
□投稿者/ まどか 中将(265回)-(2006/10/11(Wed) 15:10:55)

分類:[VB.NET] 

> nE.Value = txt_name.Textの部分で
> System.InvalidOperationException' のハンドルされていない例外が system.xml.dll で発生しました。
> 追加情報 : ノードの種類 : Element で値を設定できません。
> どの様にテキストを追加してあげれば良いんでしょうか?
>
> それとroot.AppendChild(idatt)の部分で
> 'System.InvalidOperationException' のハンドルされていない例外が system.xml.dll で発生しました。
> 追加情報 : 指定したノードをこのノードの有効な子ノードとして挿入できません。指定されたノードの種類が正しくありません。
> これを消せば問題はないんですが属性が追加されません。

うーん、参考にしているリンクのページで全部解決すると思うんですが。。。
問題の解決以前に、次の「パブリック」なものについては一通り頭に入れておきましょうよ。
http://msdn2.microsoft.com/ja-jp/library/system.xml.xmlnode_members.aspx


0
引用返信 編集キー/
■7427 / inTopicNo.9)  Re[6]: XMLの書き込み
□投稿者/ スライム 伍長(40回)-(2006/10/11(Wed) 15:20:40)

分類:[VB.NET] 

επιστημηさん、ありがとうございます
出来ました。
ありがとうございました。
各々のテキストボックスの値も取れる様になりました
下手な説明もすみませんでした
もっと説明時の時に状況を入れる様心掛けたいと思います

解決済み
引用返信 編集キー/
■7430 / inTopicNo.10)  Re[6]: XMLの書き込み
□投稿者/ επιστημη 中佐(215回)-(2006/10/11(Wed) 15:32:07)

分類:[VB.NET] 

> うーん、参考にしているリンクのページで全部解決すると思うんですが。。。

ホンマや。ぜーんぶ書いてある。なんだかなー orz


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -