- - PR -
ネスト要素の削除について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-08-17 11:36
初心者のむらしと申します。宜しくお願いいたします。
VB.NETとxmlで掲示板を作成しています。 削除ボタンでの処理を ○親スレを削除の際は、親スレ+子スレを削除 ○子スレを削除の際は、子スレのみ削除 で考えています。 現状は、 ○削除したい要素(articleID)ではなく 別の要素(article)が削除される という症状となっています。 長文になり恐縮ですが、以下にソースとxmlデータを記載いたします。 ネストの削除についてご教授いただければありがたいです。 宜しくお願いいたします。 Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand '----- 削除キー(投稿ajとログインIDを取得 Dim txtdelete As String = Session("S_delete").ToString Dim txtlogID As String = Session("S_login_id").ToString Dim xmldoc As New XmlDocument xmldoc.Load("C:\Inetpub\wwwroot\test_bbs\article.xml") Dim root As XmlNode = xmldoc.DocumentElement '----- 投稿aiarticleID)とログインID(login_id_x)の '----- ノードリストを取得 Dim del_NO_node As XmlNodeList = xmldoc.SelectNodes("//articleID") Dim del_ID_node As XmlNodeList = xmldoc.SelectNodes("//login_id_x") Dim i As Integer Dim selectNO As Integer Dim NOcheck As Integer = 0 Dim IDcheck As Integer = 0 '----- 投稿aiarticleID)とログインID(login_id_x)が合致した時に '----- selectNOに i を代入 For i = 0 To del_NO_node.Count - 1 NOcheck = String.Compare(del_NO_node(i).InnerText, txtdelete) IDcheck = String.Compare(del_ID_node(i).InnerText, txtlogID) If NOcheck = 0 AndAlso IDcheck = 0 Then selectNO = i Next root.RemoveChild(root.ChildNodes.Item(selectNO)) xmldoc.Save("C:\Inetpub\wwwroot\test_bbs\article.xml") Server.Transfer("default.aspx") End Sub ----- <xmlデータ> ------------------------------ <articles> <article> <articleID>1</articleID> <user>親スレ@</user> <date>2004/08/17 8:47</date> <mail>メール</mail> <subject>件名</subject> <topic>本文</topic> <login_id_x>MN000001</login_id_x> <replies> <reply> <articleID>2</articleID> <user>子スレ@−1</user> <date>2004/08/17 8:48</date> <mail>メール</mail> <subject>件名</subject> <topic>本文</topic> <login_id_x>MN000002</login_id_x> </reply> </replies> </article> <article> <articleID>3</articleID> <user>親スレA</user> 〜〜〜〜 </articles> [ メッセージ編集済み 編集者: むらし 編集日時 2004-08-23 21:09 ] |
1