- PR -

【VB、XML】指定した属性と、その属性の子属性を削除したい

1
投稿者投稿内容
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-02 13:15
脳味噌筋肉です。
以下のようなXMLファイルを読んで

<code>
- <HogeRoot>
- <HogeChild ID="1">
<grandchild>孫1</grandchild>
</HogeChild>
- <HogeChild ID="2">
<grandchild>孫2</grandchild>
</HogeChild>
- <HogeChild ID="3">
<grandchild>孫3</grandchild>
</HogeChild>
- <HogeChild ID="4">
<grandchild>孫4</grandchild>
</HogeChild>
- <HogeChild ID="5">
<grandchild>孫5</grandchild>
</HogeChild>
</HogeRoot>
</code>

属性HogeChild ID="5"を指定、その子となる属性の<grandchild>孫5</grandchild>ごと
削除したい、というのが本旨です。

単純に?タグ(この場合HogeChild ID="5")を渡してコールすれば要素を削除してくれる
メソッドがあるのではないか・・とタカをくくっていましたが、ありませんでした(TT)

上記の本旨を達成するに踏むべく手順をお教え頂けないでしょうか?

RemoveChildというメソッドで
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-02 13:17
各<HogeChild ID=>のタグの前に-が含まれていますが、これはタイプミスです。
失礼しました。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-11-02 13:39
Dim node As System.Xml.XmlNode = _
xml_document.DocumentElement.SelectSingleNode( _
<xpath_query>)
node.ParentNode.RemoveChild(<node>)
1操作ではなく、2操作になります、ノードをつかむ、消す、です

http://www.aspx8.com/teach/list.asp?id=514
漢字なので、英文よりわかりやすいかも。

かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-02 13:47
MMXさん、レス、感謝です(TT)

引用:

MMXさんの書き込み (2004-11-02 13:39) より:
Dim node As System.Xml.XmlNode = _
xml_document.DocumentElement.SelectSingleNode( _
<xpath_query>)
node.ParentNode.RemoveChild(<node>)
1操作ではなく、2操作になります、ノードをつかむ、消す、です

http://www.aspx8.com/teach/list.asp?id=514
漢字なので、英文よりわかりやすいかも。





SelectSingleNode!

こんなメソッドがあるとは。。。ありがとうございます、早速試します。
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-02 15:59
その後、以下のようなコードで"HogeChild ID=1"を削除しようと試みました

<code>
Dim xDoc As New XmlDocument
xDoc.Load("hoge.xml")
Dim xPathStr As String = "descendant::HogeChild [@ID='" & "1" & "']"
Dim xNode As XmlNode = xDoc.DocumentElement.SelectSingleNode(xPathString)
xNode.ParentNode.RemoveChild(xNode)
</code>

望む結果である"HogeChild ID=1"が削除されません。情けない(^^;
さらに試してみます。。。

1

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