- PR -

指定ノードの要素の更新について

投稿者投稿内容
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-30 19:33
脳味噌筋肉です。
みなさんレスありがとうございました。
私なりに試行した結果が以下のコードです。
情けない事に未だ未解決のままです。

コード:


<世界の指導者>
<指導者 ID="1">
<名前>小泉J一郎</名前>
<備考>日本</備考>
</指導者>
<指導者 ID="2">
<名前>Bシュ</名前>
<備考>米国</備考>
</指導者>
</世界の指導者>


Dim Doc As New XmlDocument
Doc.Load("上記XML")
Dim node As XmlNode = Doc.SelectSingleNode("/世界の指導者/指導者 [ID=1]")

Dim nodeNAME As XmlNode
nodeNAME = node.SelectSingleNode("名前")
nodeNAME.InnerText = "T中M子"
Doc.save("上記XML")



識者の方、私の見逃しをご指摘頂ければ幸いです。

[ メッセージ編集済み 編集者: 脳味噌筋肉 編集日時 2004-11-30 19:38 ]
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-11-30 19:56
こんばんは。

Dim nameNode As XmlNode '名前要素を取得
nameNode = xmldoc.SelectSingleNode("世界の指導者/指導者[@ID=1]/名前")

で 小泉J一郎を取得

nameNode.InnerText = "T中M子"

で更新すればOK


すいません @わすれてました

[ メッセージ編集済み 編集者: とっと 編集日時 2004-11-30 20:05 ]
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-30 20:04
とっとさん、ありがとうございます。大変感謝しております。


引用:

とっとさんの書き込み (2004-11-30 19:56) より:
こんばんは。

Dim nameNode As XmlNode '名前要素を取得
nameNode = xmldoc.SelectSingleNode("世界の指導者/指導者[ID=1]/名前")

で 小泉J一郎を取得

nameNode.InnerText = "T中M子"

で更新すればOK







コード:
           Dim node As XmlNode = Doc.SelectSingleNode("/世界の指導者/指導者 [ID=1]")

            Dim nodeNAME As XmlNode
            nodeNAME = node.SelectSingleNode("名前")




の違いですか。。。
了解しました。
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-11-30 20:08
Dim nameNode As XmlNode '名前要素を取得
nameNode = xmldoc.SelectSingleNode("世界の指導者/指導者[@ID=1]/名前")

で 小泉J一郎を取得

nameNode.InnerText = "T中M子"

で更新すればOK


すいません @わすれてました
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-30 20:31
わざわざすいません(^-^;

何故か
コード:
nameNode.InnerText = "T中M子" 


のところで例外が発生します。

少しいろいろ弄んでみます。。。
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-11-30 23:14
こんばんは。

どうもです。こちらを参考にしてみてください。

連載 .NETで簡単XML
http://www.atmarkit.co.jp/fdotnet/easyxml/index/index.html

第5回 DOMとXPath あたりですかねー、他にもいろいろ載ってますので。
4.指定番目、属性値によるノード選択
http://www.atmarkit.co.jp/fdotnet/easyxml/easyxml05/easyxml05_04.html


あと、エラーの内容はどんなものですか?
前後のコードはどうなっていますか?

nameNode.InnerText = "T中M子"
に更新する以前にちゃんと

nameNode.InnerText = "小泉J一郎"
になっていますか?

先ずはちゃんとnameNodeに"小泉J一郎"が取得できている事が第一です。

[ メッセージ編集済み 編集者: とっと 編集日時 2004-12-01 00:04 ]
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-12-01 00:55
こんな時間まで・・ありがとうございます。

引用:


連載 .NETで簡単XML
http://www.atmarkit.co.jp/fdotnet/easyxml/index/index.html

第5回 DOMとXPath あたりですかねー、他にもいろいろ載ってますので。
4.指定番目、属性値によるノード選択
http://www.atmarkit.co.jp/fdotnet/easyxml/easyxml05/easyxml05_04.html




まずはこれらを熟読します。
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-12-01 09:47
脳味噌筋肉です。

コード:

<世界の指導者>
<指導者 ID="1">
<名前>小泉J一郎</名前>
<備考>日本</備考>
</指導者>
<指導者 ID="2">
<名前>Bシュ</名前>
<備考>米国</備考>
</指導者>
</世界の指導者>


Dim Doc As New XmlDocument
Doc.Load("上記XML")
Dim node As XmlNode = Doc.SelectSingleNode("/世界の指導者/指導者 [ID=1]")

Dim nodeNAME As XmlNode
nodeNAME = node.SelectSingleNode("名前")

※このタイミングで小泉J一郎が取得できていることを確認

nodeNAME.InnerText = "T中M子"

※2

Doc.save("上記XML")





※2のタイミングでコールするReplaceChildへのパラメータに問題がありそうです。

[ メッセージ編集済み 編集者: 脳味噌筋肉 編集日時 2004-12-01 09:53 ]

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