以XML 填充 TreeView

來源:互聯網
上載者:User
步驟來建立並填充 TreeView 控制項與 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. VisualBasic.NET 中建立新的基於 Windows 的應用程式。 預設 Form 1 被添加到應用程式。
3. 將新 TreeView 、 Button 、 Label 和 TextBox 控制項拖到 Form 1。
4. 作為在代碼視窗 Form 1 中第一行添加以下範例程式碼:

Imports System.Xml

5. " Windows 表單設計器產生代碼 " 節之後用以下範例程式碼, 1 .vb 檔案中替換整個代碼:

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.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)      Me.Text = "TreeView control from XML"      Me.Width = 336      Me.Height = 368      TreeView1.SetBounds(8, 72, 312, 264)   End Sub   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click      Try         ' SECTION 1. Create a DOM Document and load the XML data into it.         Dim dom As New XmlDocument()         dom.Load(TextBox1.Text)         ' SECTION 2. Initialize the treeview control.         TreeView1.Nodes.Clear()         TreeView1.Nodes.Add(New TreeNode(dom.DocumentElement.Name))         Dim tNode As New TreeNode()         tNode = TreeView1.Nodes(0)         ' SECTION 3. Populate the TreeView with the DOM nodes.         AddNode(dom.DocumentElement, tNode)         TreeView1.ExpandAll()      Catch xmlEx As XmlException         MessageBox.Show(xmlEx.Message)      Catch ex As Exception         MessageBox.Show(ex.Message)      End Try   End Sub   Private Sub AddNode(ByRef inXmlNode As XmlNode, ByRef inTreeNode As TreeNode)      Dim xNode As XmlNode      Dim tNode As TreeNode      Dim nodeList As XmlNodeList      Dim i As Long      ' Loop through the XML nodes until the leaf is reached.      ' Add the nodes to the TreeView during the looping process.      If inXmlNode.HasChildNodes() Then         nodeList = inXmlNode.ChildNodes         For i = 0 To nodeList.Count - 1            xNode = inXmlNode.ChildNodes(i)            inTreeNode.Nodes.Add(New TreeNode(xNode.Name))            tNode = inTreeNode.Nodes(i)            AddNode(xNode, tNode)         Next      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      End If   End Sub

6. 按 F 5 鍵產生並運行應用程式。 確保 XML 檔案路徑是正確, 然後單擊 按鈕 。 XML 資料應顯示在 TreeView 控制項。

注意 : 資源可能是 URL 或一個 XML 流檔案,。 指向了有關使用 XmlDocument 類來載入 XML 資料來自不同資源本文 " 參考 " 部分。

 

前面的程式碼範例映射 XML 樹資料直接到 TreeView 並顯示所有資料。 此外, 額外資訊添加到顯示或跳過不需要資料。 在許多情況, 可能要顯示只屬於 XML 資料。 動態資料, 要顯示的部分可能構造, 結果是可延伸樣式表語言 (XSL) (XSL) 轉換或 XPath 查詢的結果。 本節介紹如何產生新 XML 文檔只需節點, 然後將新文檔添加到 TreeView 控制項。 例如, 以下步驟通過 XPath 查詢, 檢索僅子項目的 originial XML 資料, 然後將此列表作為新節點添加到 TreeView 。

1. 粘貼以下代碼之前前面樣本中 TreeView1.ExpandAll 行:

         ' SECTION 4. Create a new TreeView Node with only the child nodes.         Dim nodelist As XmlNodeList = dom.SelectNodes("//child")         Dim cDom As New XmlDocument()         cDom.LoadXml("<children></children>")         Dim node As XmlNode         For Each node In nodelist            Dim newElem As XmlNode = cDom.CreateNode(XmlNodeType.Element, node.Name, node.LocalName)            newElem.InnerText = node.InnerText            cDom.DocumentElement.AppendChild(newElem)         Next         TreeView1.Nodes.Add(New TreeNode(cDom.DocumentElement.Name))         tNode = TreeView1.Nodes(1)         AddNode(cDom.DocumentElement, tNode)

2. 產生並運行應用程式。 此應用程式應在 TreeView , 和未經處理資料顯示新 " 子代 " 根節點。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.