Penggunaan LINQ Pada Visual Studio .Net - II [ LINQ to XML ]

 

Berikut adalah cara penggunaan LINQ to XML :


LINQ to XML merupakan salah satu kemampuan LINQ untuk melakukan Query kedalam format struktur data XML.
Buat file XML Customer sebagai contoh penggunaan nantinya, isi file XML tersebut adalah  :

<?xml version="1.0" encoding="utf-8" ?>
<Contact>
 <ContactPerson id="01">
 <nama>Johanes</nama>
 <email>Johanes@gmail.com</email>
 <blog>www.johanes.blogspot.com</blog>
 </ContactPerson >
 <ContactPerson id="02">
 <nama>Mike</nama>
 <email>mike@gmail.com</email>
 <blog>www.mike.blogspot.com</blog>
 </ContactPerson >
 <ContactPerson id="03">
 <nama>Novi</nama>
 <email>novi@yahoo.com</email>
 <blog>www.novi.blogspot.com</blog>
 </ContactPerson >
</Contact> 

simpan file tersebut (customer.xml) pada [NamaProject]  --> BIN --> [Debug]


Format load file XML :

Dim LINQ = From nama In CustomerXML...<nama>  Select nama.value 

Format langsung menjadi variable di visual basic .net:

Dim CustomerXML = <?xml version="1.0" encoding="utf-8" ?>
<Contact>
 <ContactPerson id="01">
 <nama>Johanes</nama>
 <email>Johanes@gmail.com</email>
 <blog>www.johanes.blogspot.com</blog>
 </ContactPerson >
 <ContactPerson id="02">
 <nama>Mike</nama>
 <email>mike@gmail.com</email>
 <blog>www.mike.blogspot.com</blog>
 </ContactPerson >
 <ContactPerson id="03">
 <nama>Novi</nama>
 <email>novi@yahoo.com</email>
 <blog>www.novi.blogspot.com</blog>
 </ContactPerson >
</Contact> 



Contoh penggunaan dalam Visual Basic .Net


Dim CustomerXML = <?xml version="1.0" encoding="utf-8" ?>
<Contact>
 <ContactPerson id="01">
 <nama>Johanes</nama>
 <email>Johanes@gmail.com</email>
 <blog>www.johanes.blogspot.com</blog>
 </ContactPerson >
 <ContactPerson id="02">
 <nama>Mike</nama>
 <email>mike@gmail.com</email>
 <blog>www.mike.blogspot.com</blog>
 </ContactPerson >
 <ContactPerson id="03">
 <nama>Novi</nama>
 <email>novi@yahoo.com</email>
 <blog>www.novi.blogspot.com</blog>
 </ContactPerson >
</Contact> 

' jika hanya ingin mengambil nilai dari field XML tanpa ikut field 
Dim LINQ = From nama In CustomerXML...<nama>  Select nama.Value

' jika hanya ingin mengambil nilai dari field XML dengan ikut field 
'Dim LINQ = From nama In CustomerXML...<nama>  Select nama

 Dim hasil = "-- List Tag Nama --" & vbCrLf & vbCrLf
 For Each nama In LINQ
 hasil = hasil & nama.toString & vbCrLf
 Next
 MsgBox(hasil) 



Load XML data

untuk meload data file XML gunakan sintak :

Dim <nama variable> = XDocument.Load(<URL data xml>)

Contoh load file XML yang telah dibuat sebelumnya diatas :

 Dim contactXML = XDocument.Load(CurDir() & "\customer.xml")
 Dim LINQ = From nama In contactXML...<nama>  Select nama
 Dim hasil = "-- List Tag Nama --" & vbCrLf & vbCrLf
 For Each nama In LINQ
 hasil = hasil & nama.ToString & vbCrLf
 Next
 MsgBox(hasil) 



Jika ingin mengambil semua data pada file XML, gunakan sintak :

Dim LINQ = From nama In contactXML...<ContactPerson>  Select nama

Hasilnya maka akan menampilkan semua value file XML




Membuat File XML  

Disini akan dicoba membuat file XML dan mengambil kembali untuk ditampilkan dengan value yang dynamic


Contoh load xml dan menampilkan tanpa menggunakan LINQ:

Dim oXML = <?xml version="1.0" encoding="utf-8"?>
 <Waktu>
 <%= Now() %>
 </Waktu>
 My.Computer.FileSystem.WriteAllText ("d:\waktu.xml", oXML.ToString, False)
 Process.Start("d:\waktu.xml") 



Contoh load xml dan menampilkan  menggunakan LINQ dengan value dynamic:

Dim oXML = <?xml version="1.0" encoding="utf-8"?>
 <TaskManager>
 <%= From p In System.Diagnostics.Process.GetProcesses _
 Select <proses>
 <id><%= p.Id %></id>
 <nama><%= p.ProcessName %></nama>
 <memory><%= p.PagedMemorySize %></memory>
 </proses> %>
 </TaskManager> 
My.Computer.FileSystem.WriteAllText ("c:\proses.xml", oXML.ToString, False)
Process.Start("c:\proses.xml")