2.1.26.29 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