none
關於TreeNode遞迴,列印路徑所產生的問題 RRS feed

  • 問題

  •   StringBuilder sb = new StringBuilder();
            static string s1 = "";
            private void PrintRecursive(TreeNode treeNode)
            {
                if (treeNode.Tag is HtmlElement)
                {
                    sb.Append(string.Format("{0} 分支數:{1}//", treeNode.Text,treeNode.Nodes.Count));
                }
                else
                {
                    sb.Append (string.Format("{0} 字數:{1}\n" , treeNode.Text,treeNode.Text.Length)); 
                    s1 = sb.ToString();
                    richTextBox1.Text = s1 + "\n";
                    s1 = null;
                }
               
                foreach (TreeNode tn in treeNode.Nodes)
                {
                    PrintRecursive(tn);
                }
            }

    由於此上的寫法

    遞迴(前序)

    產生出 當跑到相鄰的節點的情況下,前面的路徑消失

    只剩下之後的節點比如

    <DIV>//<DIV>//<UL>//<LI>//<A>//<SPAN>//文字

    <LI>//<A>//<SPAN>//文字

    <LI>//<A>//<SPAN>//文字

    2013年10月7日 上午 08:17

所有回覆

  • 請將以下的變數刪除:

    static string s1 = "";

    PrintRecursive方法中宣告以下的變數

    string s1 = "";

    再試看看

    2013年10月7日 上午 08:53
  • Dear this

      不好意思,結果還是一樣,結果圖如下:

    2013年10月7日 下午 01:31
  • 圖太小看不清楚

    還有s1 = null;要刪掉

    2013年10月8日 上午 02:06
  • Dear this 

             剛剛那個網址 不知道你看不看的到

             因為遞迴

              所以

              <DIV>(3)//<DIV>(1)//<UL>(3)//<LI>//<A>//<SPAN>//文字

               <LI>//<A>//<SPAN>//文字

                <LI>//<A>//<SPAN>//文字

                希望能修成

               <DIV>(3)//<DIV>(1)//<UL>(3)//<LI>//<A>//<SPAN>//文字

                <DIV>(3)//<DIV>(1)//<UL>(3)//<LI>//<A>//<SPAN>//文字

                 <DIV>(3)//<DIV>(1)//<UL>(3)//<LI>//<A>//<SPAN>//文字

    2013年10月12日 下午 02:32