tree_find_node_by_dataID

 

Description

Finds a tree node given its data id, and optionally its parent data id and repeat id, and granparent data id and repeat id.

Syntax

TreeNode tree_find_node_by_dataID( TreeNode tr, int nID, int nIDParent = 0, int nParentRepeatID = -1, int nIDGrandParent = 0, int nGrandParentRepeatID = -1 )

Parameters

tr
[input] the tree to search
nID
[input] the data id to find
nIDParent
[input] optional parent data id
nParentRepeatID
[input] optional parent repeat id
nIDGrandParent
[input] optional grandparent data id
nGrandParentRepeatID
[input] optional grandparent repeat id

Return

the TreeNode found if successful, an invalid TreeNode if not found.

Examples

EX1

void tree_find_node_by_dataID_ex1()
{
        Tree trTest;
        TreeNode tn1, tn2;
        tn1 = trTest.AddTextNode("node 1", "Node1");
        tn1.SetAttribute(STR_DATAID_ATTRIB, 1);
        tn1.SetAttribute(STR_REPEAT_ID_ATTRIB, 1);
        tn2 = trTest.AddTextNode("node 2", "Node2");
        tn2.SetAttribute(STR_DATAID_ATTRIB, 2);
        tn2.SetAttribute(STR_REPEAT_ID_ATTRIB, 2);
        TreeNode tn1_1, tn1_2;
        tn1_1 = tn1.AddTextNode("node 1.1", "Node1.1");
        tn1_1.SetAttribute(STR_DATAID_ATTRIB, 3);
        tn1_1.SetAttribute(STR_REPEAT_ID_ATTRIB, 3);
        tn1_2 = tn1.AddTextNode("node 1.2", "Node1.2");
        tn1_2.SetAttribute(STR_DATAID_ATTRIB, 4);
        tn1_2.SetAttribute(STR_REPEAT_ID_ATTRIB, 4);
        TreeNode tn1_1_1, tn1_1_2;
        tn1_1_1 = tn1_1.AddTextNode("node 1.1.1", "Node1.1.1");
        tn1_1_1.SetAttribute(STR_DATAID_ATTRIB, 5);
        tn1_1_1.SetAttribute(STR_REPEAT_ID_ATTRIB, 5);
        tn1_1_2 = tn1_1.AddTextNode("node 1.1.2", "Node1.1.2");
        tn1_1_2.SetAttribute(STR_DATAID_ATTRIB, 6);
        tn1_1_2.SetAttribute(STR_REPEAT_ID_ATTRIB, 6);
        
        TreeNode tnRet;
        
        tnRet = tree_find_node_by_dataID(trTest, 1, 0, -1, 0, -1);
        if( tnRet )
                out_str(tnRet.tagName);
        else
                out_str("can't find");
        
        tnRet = tree_find_node_by_dataID(trTest, 7, 0, -1, 0, -1);
        if( tnRet )
                out_str(tnRet.tagName);
        else
                out_str("can't find");
        
        tnRet = tree_find_node_by_dataID(trTest, 5, 3, -1, 1, -1);
        if( tnRet )
                out_str(tnRet.tagName);
        else
                out_str("can't find");
}

Remark

See Also

tree_get_node_by_dataid

Header to Include

origin.h

Reference