65.9K
CodeProject is changing. Read more.
Home

Check if an XmlNode is a child node in an XML DOM tree

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.76/5 (8 votes)

Oct 12, 2006

CPOL
viewsIcon

24225

A recursive procedure to check if an XML node is a child node of another XML node in an XML DOM tree.

Introduction

This article describes a simple procedure to check if a given node is a child node of another node. The XML DOM tree consists of a number of XML nodes. If it is required to check if a node in an XML DOM tree is a child node of the same tree, use the simple procedure shown below. The procedure is a recursive one.

The checkNode is of type XmlNode, and is used to check whether the node is a child node of parentNode of type XmlNode. Make sure that both are in the same XmlDocument. Otherwise, it always returns False.

Public Function IsCheckNodeChildNodeOfParentNode(ByRef parentNode _
       As XmlNode, ByRef checkNode As XmlNode) As Boolean
    Try

        Dim xNode As XmlNode

        If checkNode Is parentNode Then
            Return True
        ElseIf parentNode.HasChildNodes Then
            For Each xNode In parentNode.ChildNodes
                If checkNode Is xNode Then
                    Return True
                Else
                    If IsCheckNodeChildNodeOfParentNode(xNode, _
                                                 checkNode) Then
                        Return True
                    End If
                End If
            Next
        Else
            Return False
        End If
        Return False
    Catch ex As Exception
        Throw New Exception(ex.Message & " " & ex.StackTrace)
    End Try
End Function