- PR -

ネスト要素の削除について

1
投稿者投稿内容
むらし
会議室デビュー日: 2004/08/17
投稿数: 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

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