2013-10-09 42 views
0

如何在Rational Functional Tester中獲得樹的所有節點?我已經嘗試過使用getTestdata()但無法解決問題?如何獲得RFT中樹的所有節點?

代碼段:

ITestDataTree iTreeData =(ITestDataTree)businessObj.smi_LocTreePricingRules().getTestData("tree"); 
       ITestDataTreeNodes iNodes = iTreeData.getTreeNodes(); 
       System.out.println("node count:"+iNodes.getNodeCount()); 

       ITestDataTreeNode[] rootNodes = iNodes.getRootNodes(); 
      // System.out.println(iNodes.getNodeCount()); 
      // ITestDataTreeNodes nodes= tree.getTreeNodes(); 

       System.out.println(rootNodes.length); 
       for(int i = 0; i < rootNodes.length; i++) { 
       genericObj.showTree(rootNodes[i]); //This showTree method is present in another GenericLib class.              public void showTree(ITestDataTreeNode node) 
{ 

    //Recursive method to print out tree nodes with proper indenting. 

    //Determine number of tabs to use - to properly indent tree 


    //Print out node name + number of children 
    //System.out.println( node.getNode() + " (" + node.getChildCount() + "children)"); 

    //Determine if node has children; recursively call this same 
    //method to print out child nodes. 
    ITestDataTreeNode[] children = node.getChildren(); 
    int childCount = (children != null ? children.length : 0); 
    for (int i = 0; i < childCount; ++i) 
     showTree(children[i]); 
    String synb = node.getNode().toString(); 

    System.out.println( node.getNode() + " (" + node.getChildCount() + "children)"); 


} 

但這段代碼是給我根node.How我能得到這樣的孩子的孩子的所有節點的直接孩子?

回答

0

該API應該能夠實現遍歷樹的節點。 你可以請你分享一下你試圖獲取樹的所有節點的代碼片段嗎?

在您需要一個片斷的情況下,你可以使用下面的一個:

public printTreeNodes(){ 
//Declare variables for tree 
     ITestDataTree cdTree; 
     ITestDataTreeNodes cdTreeNodes; 
     ITestDataTreeNode[] cdTreeNode; 

     //Variables to hold tree data 
       //tree_mytree() is the tree object you want to traverse 
     cdTree = (ITestDataTree)tree_mytree().getTestData("tree"); 
     cdTreeNodes = cdTree.getTreeNodes(); 
     cdTreeNode = cdTreeNodes.getRootNodes(); 

     //Print out total number of nodes 
     System.out.println ("Tree Total Node Count: " + cdTreeNodes.getNodeCount()); 
     System.out.println ("Tree Root Node Count : " + cdTreeNodes.getRootNodeCount()); 

     //Iterate through tree branches; this is a recursive method. 
     for (int i = 0;i<cdTreeNode.length;++i) 
     showTree(cdTreeNode[i], 0); 
} 

void showTree(ITestDataTreeNode node, int indent) 
{ 
    //Recursive method to print out tree nodes with proper indenting. 

    //Determine number of tabs to use - to properly indent tree 
    int tabCount = (indent < tabs.length() ? indent : 
     tabs.length()); 

    //Print out node name + number of children 
    System.out.println(tabs.substring(0, tabCount) + node.getNode() + " (" + node.getChildCount() + "children)"); 

    //Determine if node has children; recursively call this same 
    //method to print out child nodes. 
    ITestDataTreeNode[] children = node.getChildren(); 
    int childCount = (children != null ? children.length : 0); 
    for (int i = 0; i < childCount; ++i) 
     showTree(children[i], indent+1); 
} 
//String of tabs used to indent tree view 
final String tabs = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"; 
+0

我曾嘗試這樣的代碼: – krnitish1803

+0

你能告訴我是U遍歷什麼樣的樹?在html頁面中是JAVA樹還是dojo樹?你也可以分享你的樹結構的快照嗎? 嘗試在每次遞歸調用時打印出節點長度或子節點長度,並與您的樹進行比較以檢查您是否獲得了正確的輸出。 – Archiekins

相關問題