您目前已離線,請等候您的網際網路重新連線

不支援您的瀏覽器

您必須更新瀏覽器,才能使用此網站。

更新至最新版本的 Internet Explorer

如何將填入具有 XML 資料在 Visual C# 2005年中或在 Visual C#.NET 中的樹狀檢視控制項

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:317597
本文章的有 Microsoft Visual Basic.NET] 版本請參閱 308063
結論
步驟依步驟本文將告訴您,如何以使用 「 可延伸標記語言 」 (XML) 資料,在 Microsoft Visual C# 2005年或 Microsoft Visual C#.NET 中填入 樹狀檢視 控制項。因為 XML 和 樹狀檢視 控制項代表階層式格式中的資料,樹狀檢視 控制項就會是一個自然的選擇來顯示 XML 資料。

樹狀檢視 控制項具有與根 TreeNode 物件的 節點 集合。每個 TreeNode 輪流具有擁有一個以上的子系 TreeNode 它自己 節點 集合。

附註這個範例使用文件物件模型 (DOM) 剖析處理 XML 的.NET 類別。

有關更多如何設計的.NET Framework 中的 XML,請參閱 < References > 一節。

需求

下列清單列出建議的硬體、 軟體、 網路基礎結構及您需要的服務套件:
  • Microsoft Windows XP、 Microsoft Windows 2000 或 Microsoft Windows NT 4.0 Service Pack 6a
  • Microsoft 資料存取元件 2.6 (MDAC) 或更新版本
  • Microsoft Visual Studio 2005 或 Microsoft Visual Studio.NET
本文假設您已熟悉下列主題:
  • Visual C# 2005年語法或 Visual C#.NET 語法
  • XML 和相關的標準
  • Windows Form

建立及填入樹狀檢視控制項,以 XML 的步驟

  1. 下列 XML 範例程式碼貼中名為 Sample.xml"的新文字檔。這個檔案是這個範例的 XML 資料範例:
    <?xml version="1.0"?><family><parent>id="grandfather"    <parent>id="father"         <parent>id="brother"            <child>id="niece"            </child>         </parent>         <parent>id="me"            <child>id="son"</child>            <child>id="daughter"</child>         </parent>         <child>id="sister"</child>     </parent>     <parent>id="uncle"         <parent>id="cousin sister"            <child>id="second cousin"</child>         </parent>         <child>id="cousin brother"</child>     </parent></parent></family>
  2. 在 Visual C# 2005年或 Visual C#.NET,請建立新的 Windows 架構應用程式。 Form1 加入到應用程式上,根據預設值。
  3. 將新的 樹狀檢視]、 [按鈕]、 [標籤,] 和 [TextBox 控制項拖曳到 Form1。
  4. 將下列的範例程式碼加入 Form1.cs 中的 [使用] 指示詞區段結尾處:
    using System.Xml;					
  5. 下列範例程式碼貼入 Form1_Load 事件:
                   // Initialize the controls and the form.         label1.Text = "File Path";         label1.SetBounds(8, 8, 50, 20);         textBox1.Text = Application.StartupPath + "\\Sample.xml";         textBox1.SetBounds(64, 8, 256, 20);         button1.Text = "Populate the TreeView with XML";         button1.SetBounds(8, 40, 200, 20);         this.Text = "TreeView control from XML";         this.Width = 336;         this.Height = 368;         treeView1.SetBounds(8, 72, 312, 264);					
  6. 下列程式碼貼入 Button1_Click 事件:
             try          {            // SECTION 1. Create a DOM Document and load the XML data into it.            XmlDocument dom = new XmlDocument();            dom.Load(textBox1.Text);            // SECTION 2. Initialize the TreeView control.            treeView1.Nodes.Clear();            treeView1.Nodes.Add(new TreeNode(dom.DocumentElement.Name));            TreeNode tNode = new TreeNode();            tNode = treeView1.Nodes[0];            // SECTION 3. Populate the TreeView with the DOM nodes.            AddNode(dom.DocumentElement, tNode);            treeView1.ExpandAll();         }         catch(XmlException xmlEx)         {            MessageBox.Show(xmlEx.Message);         }         catch(Exception ex)         {            MessageBox.Show(ex.Message);         }					
  7. 下列的範例程式碼貼 Button1_Click 事件之後:
          private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)      {         XmlNode xNode;         TreeNode tNode;         XmlNodeList nodeList;         int i;         // Loop through the XML nodes until the leaf is reached.         // Add the nodes to the TreeView during the looping process.         if (inXmlNode.HasChildNodes)         {            nodeList = inXmlNode.ChildNodes;            for(i = 0; i<=nodeList.Count - 1; i++)            {               xNode = inXmlNode.ChildNodes[i];               inTreeNode.Nodes.Add(new TreeNode(xNode.Name));               tNode = inTreeNode.Nodes[i];               AddNode(xNode, tNode);            }         }         else         {            // Here you need to pull the data from the XmlNode based on the            // type of node, whether attribute values are required, and so forth.            inTreeNode.Text = (inXmlNode.OuterXml).Trim();         }      }                     }}					
  8. 按下 F5 以建置並執行應用程式。請確定 XML 檔案路徑正確,然後按一下 按鈕。XML 資料應該會顯示在 樹狀檢視 控制項。
附註資源可能是一個檔案是 URL 或 XML 資料流。請參閱 < References > 一節使用 XmlDocument 類別從不同的資源載入的 XML 資料的相關資訊。

若要填入樹狀檢視控制項與必要的資料的步驟

先前的程式碼範例會對應 XML 樹狀目錄資料,直接到 樹狀檢視,並顯示所有資料。或者,加入至顯示額外的資訊,或略過不想要的資料。

在許多情況下,您可能要顯示部分 XML 資料。您想要顯示的資料部分可能會以動態方式建構的 「 可延伸樣式表語言 (XSL)] 轉換的結果或 XPath 查詢的結果。本節說明如何建立新的 XML 文件具有必要的節點,然後將新的文件加入至 樹狀檢視 控制項。

比方說下列步驟使用 XPath 查詢擷取只的項目子系 originial XML 資料] 中,然後再新增這份清單做為新的節點至 樹狀檢視 中。
  1. 貼上下列程式碼之前先前的範例中的某 TreeView1.ExpandAll 一行:
                // SECTION 4. Create a new TreeView Node with only the child nodes.            XmlNodeList nodelist = dom.SelectNodes("//child");            XmlDocument cDom = new XmlDocument();            cDom.LoadXml("<children></children>");            foreach(XmlNode node in nodelist)            {               XmlNode newElem = cDom.CreateNode(XmlNodeType.Element, node.Name, node.LocalName);               newElem.InnerText = node.InnerText;               cDom.DocumentElement.AppendChild(newElem);            }                     treeView1.Nodes.Add(new TreeNode(cDom.DocumentElement.Name));            tNode = treeView1.Nodes[1];            AddNode(cDom.DocumentElement, tNode);					
  2. 建置並執行應用程式。這個應用程式應該在 樹狀檢視 中,除了原始資料中顯示新的 「 兒童 」 根節點。

參考

如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
313651在.NET Framework 中的 XML 的藍圖
如需詳細資訊請造訪下列 Microsoft 開發 o 人 h 員 û 工 u 具 ã 網路 (MSDN) 網站]:

警告:本文為自動翻譯

內容

文章識別碼:317597 - 最後檢閱時間:05/17/2007 03:50:48 - 修訂: 4.6

  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 標準版
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • kbmt kbbcl kbctrl kbhowtomaster kbwindowsforms KB317597 KbMtzh
意見反應
t type="text/javascript" src="https://c.microsoft.com/ms.js">