Sometimes we cannot always have XML from an XML file or Feed source and have to reply on a string or DB source. So what do we do?
Consider the following xml:
Suppose this xml is stored in our database or is present in a string. We can parse this as xml and query it using a LINQ.
Dim parsedXML As XDocument = XDocument.Parse(XMLString)
Dim Myitems = (From item In (From temp In parsedXML.Descendants("Menu") _
Select New With {.My_Page_Link = temp.Element("pageURL").Value, _
.Text_To_Display = temp.Element("text").Value _
}) Select item)
Here are some ideas on how we can play with the “MyItems” result set from above.
Simple Grid View
Bind with a grid view as:
GridView1.DataSource = Myitems
GridView1.DataBind()
And we have:
Simple Loop through the Results
For i As Integer = 0 To Myitems.Count - 1
Response.Write(Myitems(i).Text_To_Display)
Response.Write(Myitems(i).My_Page_Link)
Next
Store in a structure and return the custom structure through Function
Public Structure MyCustomStructure
Public LinkText As String
Public PageHyperlink As String
End Structure
And in a function
Dim CustomStructure(Myitems.Count - 1) As MyCustomStructure
Dim MyStructureHandle As MyCustomStructure
For i As Integer = 0 To Myitems.Count - 1
MyStructureHandle = New MyCustomStructure
MyStructureHandle.LinkText = Myitems(i).Text_To_Display
MyStructureHandle.PageHyperlink = Myitems(i).My_Page_Link
CustomStructure(i) = MyStructureHandle
Next
Return CustomStructure
And with the returned function you can loop through or bind with a data display object.
How about searching the string XML?
you can easily search as:
Dim Myitems = (From item In (From temp In parsedXML.Descendants("Menu") _
Select New With {.My_Page_Link = temp.Element("pageURL").Value, _
.Text_To_Display = temp.Element("text").Value _
}) _
Where (item.My_Page_Link = "http://www.example.com") _
Select item)
Happy Programming!






0 comments:
Post a Comment