Imam Kurniawan Boru.Jaitzz

Rabu, 05 Oktober 2011

Cara mengisi TreeView kontrol dengan Data XML dalam Visual Basic.NET




Ini langkah-langkah artikel oleh menjelaskan cara untuk mengisi TreeView kontrol dengan menggunakan data Extensible Markup Language (XML) di Visual Dasar.NET. Karena kedua XML dan TreeView kontrol mewakili data dalam format hierarki, TreeView kontrol adalah pilihan alami untuk menampilkan XML data.

The TreeView kontrol telah Node Koleksi dengan akar TreeNode objek. Setiap TreeNode pada gilirannya telah sendiri Node Koleksi yang memegang lebih dari satu anak TreeNode.

CATATAN: Contoh ini menggunakan Document Object Model (DOM) parsing kelas dari.NET untuk proses XML.

Untuk informasi lebih lanjut tentang desain XML dalam.NET Framework, lihat bagian "Referensi" ini artikel.

Persyaratan
Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang Anda butuhkan:
  • Microsoft Windows XP, Microsoft Windows 2000, atau Microsoft Windows NT 4.0 Paket Layanan 6a
  • Microsoft Data akses komponen 2.6 (MDAC) atau kemudian
  • Microsoft Visual Studio.NET
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan berikut topik:
  • Visual Basic.Sintaks bersih
  • XML dan standar-standar terkait
  • Windows Forms

Langkah-langkah untuk membuat dan TreeView kontrol dengan XML
  1. Paste kode contoh XML berikut dalam file teks baru bernama "Sample.xml". File ini adalah contoh XML data untuk contoh ini:


<?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          Membuat aplikasi berbasis Windows baru dalam Visual Basic .NET. Form1 ditambahkan ke aplikasi secara default.
3            Tarik baru TreeView, Tombol, Label, dan TextBox kontrol ke Form1.
4            Menambahkan kode contoh berikut sebagai baris pertama dalam kode jendela di Form1.vb:

mports System.Xml


5              Dalam Form1.vb file, menggantikan seluruh kode setelah "Windows Form Designer dihasilkan kode" bagian dengan kode contoh berikut:

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        Tekan F5 untuk membangun dan menjalankan aplikasi. Pastikan bahwa XML file path benar dan kemudian klik tombol. XML data yang akan muncul di TreeView kontrol.
CATATAN: Sumber bisa sebuah file, URL atau arus XML. Merujuk kepada bagian "Referensi" dari artikel ini untuk informasi tentang penggunaan XmlDocument kelas untuk memuat XML data dari berbagai sumber daya.

Langkah-langkah untuk mengisi TreeView kontrol dengan Data yang diperlukan
Contoh kode sebelumnya peta pohon XML data langsung ke TreeView dan menampilkan semua data. Atau, Anda dapat menambahkan ekstra informasi untuk menampilkan atau melompat tidak diinginkan data.

Dalam banyak kasus, Anda mungkin ingin menampilkan hanya bagian dari XML data. Bagian dari data yang Anda ingin menampilkan Mei menjadi dinamis dibangun, hasil dari Extensible Transformasi Stylesheet Language (XSL), atau hasil dari permintaan XPath. Ini bab menjelaskan bagaimana membangun dokumen XML baru dengan hanya diperlukan node Kemudian tambahkan dokumen baru untuk TreeView kontrol.

Sebagai contoh, mengambil langkah-langkah berikut hanya elemen anak originial XML data dengan menggunakan XPath permintaan, dan Kemudian tambahkan daftar ini sebagai suatu node baru untuk TreeView.
1        Paste kode berikut sebelum TreeView1.ExpandAll baris dalam contoh sebelumnya:
         ' 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        Membangun dan kemudian menjalankan aplikasi. Aplikasi ini harus menampilkan baru "anak" akar di TreeView, selain untuk data asli.

REFERENSI
Untuk informasi tambahan, Lihat artikel Basis Pengetahuan berikut dan Microsoft.NET Software Development Kit (SDK) dokumentasi:
313651  (http://support.microsoft.com/kb/313651/ ) Peta jalan untuk XML di.NET Framework
System.xml Namespace
.aspx http://MSDN.Microsoft.com/en-us/library/System.XML (vs.71) (http://msdn.microsoft.com/en-us/library/system.xml(vs.71).aspx)
Microsoft.Pembangunan bersih
http://MSDN.Microsoft.com/XML (http://msdn.microsoft.com/xml)

Tidak ada komentar:

Posting Komentar