2013-11-27 32 views
2

我作出(使用HtmlAgilityPack)這個HTML編輯器有通過更改樹視圖 - 更改必須並行加載的文件來完成,C#綁定HTML文檔

什麼將是最好的方式將htmlNode與treeNode相關聯(我認爲它與XmlNode相當)。我有一些想法,但我想知道是否有一些好的解決方案。

回答

2

至今還沒有人提供幫助,即時通訊張貼我這樣做的方式,但如果有人會提出更好的解決方案,我會接受它。

public void bind(HtmlNode htmlN, TreeNode treeN) 
    { 

     StringBuilder result = new StringBuilder(); 
     switch (htmlN.NodeType) 
     { 
      case HtmlNodeType.Comment : 
       result.Append(htmlN.InnerText); 
       break; 
      case HtmlNodeType.Document : 
       result.Append("root"); 
       break; 
      case HtmlNodeType.Element : 
       result.Append('<').Append(htmlN.Name).Append('>'); 
       break; 
      case HtmlNodeType.Text : 
       result.Append(htmlN.InnerText); 
       break; 
      default: 
       result.Append("undefined element"); 
       break; 
     } 

     treeN.Text = result.ToString(); 
     treeN.Name = htmlN.Name; 
     treeN.Tag = htmlN; 

     TreeNode newTN; 

     foreach (HtmlNode node in htmlN.ChildNodes){ 
      if (node.NodeType == HtmlNodeType.Element || node.InnerText.Trim().Length > 0){ 
       newTN = new TreeNode(); 
       treeN.Nodes.Add(newTN); 
       bind(node, newTN); 
      } 
     } 
    }