How Deep Can You Dive ?

Bayangkan jika anda mempunyai sebuah file xml yang element-elementnya memiliki kedalaman (sibling node) yang cukup nested...lalu bagaimana caranya kalau kita ingin melakukan update element tertentu pada element yang berada pada node yang paling dalam? Pake XPath? Pake XmlDocument? Jawabannya tentu tidak...ga terbayangkan kalau kita melakukannya menggunakan kedua class tersebut. Lalu pake apa? Ya...seperti yang anda sudah tahu semua, pake LINQ to XML...update nodenya pake XML Literal dong :)

Ok...misalkan saya punya sebuah file xml seperti ini :

kemudian saya ingin update / menambahkan "Answer" node pada element "AnswerList" yang terdapat pada parent element "Property" untuk "SubCategory" element dengan attribut "Name" = "" dan "Category" element dengan atribut "Name" = "Genset-A"...(mendsekripsikannya aja susah :) )...sekarang saya hanya ingin memperlihatkan potongan code nya saja langsung untuk membuktikan how powerfull Linq to XML, LambdaExpression, and  XML Literal in VB 9.0...

        schemaContent.Find(Function(item) item...<Category>.@Name.Equals( _
            ddlAvailableCat.Text) AndAlso item...<SubCategory>.@Name.Equals( _
            ddlAvailableSubCat.Text))...<Property>.Where( _
            Function(name) name.<Name>.Value.Equals( _
            CStr(ViewState("propselected")))).<AnswerList>(0).Add( _
            From answer In listToUpdate(0).AnswerList _
            Select <Answer>
                       <%= answer %>
                   </Answer>)

        schemaContent(0).Save("c:/test.xml")
        System.Diagnostics.Process.Start("c:/test.xml")

Variabel schemaContent merupakan Generic List(Of System.Xml.Linq.XElemant) yang diambil dari kolom yang disimpan dengan tipe data xml di database SQL Server 2005,  dan hasilnya dapat anda lihat pada gambar dibawah ini :

Ok...segitu saja (Udah mumet nih)...jangan terlalu banyak ngoding ah :D ...so How Deep Can You Dive with your own code :p ?

Share this post: | | | |
Published Friday, April 18, 2008 9:26 AM by yulian
Filed under:

Comments

# re: How Low Can You Go?

Friday, April 18, 2008 5:42 PM by reyza

bos, kayanya kenal tuh code di atas itu buat apa? :)

kalo code di atas sudah kelar, jadi kan bikin buku kecil warna ijo? :)

# re: How Low Can You Go?

Friday, April 18, 2008 8:13 PM by yulian

@reza

O ya kamu kenal code ini :)...jadi lah bikin buku itu ntar, biar bisa ngajak y****g mu ke suatu tempat :p

Powered by Community Server (Commercial Edition), by Telligent Systems