Solved

display result from xml file

Posted on 2006-11-01
6
162 Views
Last Modified: 2012-05-05
Hi Experts
I have the following xml:
<?xml version="1.0"?>
<!--This Is A List Of Dream Vacations Special Packages-->
<HOTELS>
  <HOTEL>
    <DEPARTURE>Toronto</DEPARTURE>
    <DESTINATION>Cancun</DESTINATION>
    <NAME>AKUMAL BEACH RESORT</NAME>
    <LINK>http://webstar.softvoyage.com/cgi-bin/hotel_desc.cgi?sun&&http://webstar.softvoyage.com/hotels/VACen/AKUMCUN.html</LINK>
    <STAR>3</STAR>
    <ROOM>STD-GARD</ROOM>
    <MEAL>AI</MEAL>
    <DATE>NOV-15-2006</DATE>
    <DURATION>7</DURATION>
    <PRICE>$822.00</PRICE>
    <SID>112086a3259303c76d123e67e7004be2</SID>
    <URL>http://sun.sax.softvoyage.com/cgi-bin/resultsforf.cgi?sid=112086a3259303c76d123e67e7004be2</URL>
  </HOTEL>
  <HOTEL>
    <DEPARTURE>Toronto</DEPARTURE>
    <DESTINATION>Cancun</DESTINATION>
    <NAME>AKUMAL BEACH RESORT</NAME>
    <LINK>http://webstar.softvoyage.com/cgi-bin/hotel_desc.cgi?sun&&http://webstar.softvoyage.com/hotels/VACen/AKUMCUN.html</LINK>
    <STAR>3</STAR>
    <ROOM>SUP</ROOM>
    <MEAL>AI</MEAL>
    <DATE>NOV-15-2006</DATE>
    <DURATION>7</DURATION>
    <PRICE>$863.00</PRICE>
    <SID>112086a3259303c76d123e67e7004be2</SID>
    <URL>http://sun.sax.softvoyage.com/cgi-bin/resultsforf.cgi?sid=112086a3259303c76d123e67e7004be2</URL>
  </HOTEL>
</HOTELS>

And im using the following code which  should display the result of each node on the page but it gives me the result of first node every time. Im using the following code:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim doc As New XmlDocument
        Dim hotelNodes As XmlNodeList
        Dim node As XmlNode
        Dim strDep, strDes, strName, strLink, strStar, strRoom, strMeal, strDate, strDuration, strPrice, strSID, strURL As String
        Dim lbl As Label
       
       
        Dim hl As HyperLink
        Dim tbl As New Table
        Dim tr As TableRow
        Dim tc As TableCell
        Dim i As Integer
        doc.Load("C:\Inetpub\wwwroot\CallForm\Specials\special.xml")

        hotelNodes = doc.SelectNodes("//HOTELS/HOTEL")

        i = 1

        For Each node In hotelNodes
            strDep = node.SelectSingleNode("//DEPARTURE").InnerText
            strDes = node.SelectSingleNode("//DESTINATION").InnerText
            strName = node.SelectSingleNode("//NAME").InnerText
            strLink = node.SelectSingleNode("//LINK").InnerText
            strStar = node.SelectSingleNode("//STAR").InnerText
            strRoom = node.SelectSingleNode("//ROOM").InnerText
            strMeal = node.SelectSingleNode("//MEAL").InnerText
            strDate = node.SelectSingleNode("//DATE").InnerText
            strDuration = node.SelectSingleNode("//DURATION").InnerText
            strPrice = node.SelectSingleNode("//PRICE").InnerText
            strSID = node.SelectSingleNode("//SID").InnerText
            strURL = node.SelectSingleNode("//URL").InnerText

           
            tr = New TableRow
            tc = New TableCell
           
            lbl = New Label
            lbl.ID = "lbl" & i
            lbl.Text = "<br>Departure: "
            tc.Controls.Add(lbl)
            lbl = New Label
            lbl.ID = "lbl2" & i
            lbl.Text = "<b>" & strDep & "</b></br>"
            tc.Controls.Add(lbl)
            tr.Cells.Add(tc)
            tbl.Rows.Add(tr)
           
            lbl = New Label
            lbl.ID = "lbl" & i
            lbl.Text = "Destination: "
            tc.Controls.Add(lbl)
            lbl = New Label
            lbl.ID = "lbl2" & i
            lbl.Text = "<b>" & strDes & "</b></br>"
            tc.Controls.Add(lbl)
            tr.Cells.Add(tc)
            tbl.Rows.Add(tr)
           
            lbl = New Label
            lbl.ID = "lbl" & i
            lbl.Text = "Hotel: "
            tc.Controls.Add(lbl)
            hl = New HyperLink
            hl.ID = "h1" & i
            hl.Text = strName
            hl.NavigateUrl = strLink
            tc.Controls.Add(hl)
            tr.Cells.Add(tc)
            tbl.Rows.Add(tr)
           
            tr = New TableRow
            tc = New TableCell
            lbl = New Label
            lbl.ID = "lbl" & i
            lbl.Text = "Star Rating: "
            tc.Controls.Add(lbl)
            lbl = New Label
            lbl.ID = "lbl2" & i
            lbl.Text = "<b>" & strStar & "</b>"
            tc.Controls.Add(lbl)
            tr.Cells.Add(tc)
            tbl.Rows.Add(tr)
           
            tr = New TableRow
            tc = New TableCell
            lbl = New Label
            lbl.ID = "lbl" & i
            lbl.Text = "Room Type: "
            tc.Controls.Add(lbl)
            lbl = New Label
            lbl.ID = "lbl2" & i
            lbl.Text = "<b>" & strRoom & "</b>"
            tc.Controls.Add(lbl)
            tr.Cells.Add(tc)
            tbl.Rows.Add(tr)
           
            tr = New TableRow
            tc = New TableCell
            lbl = New Label
            lbl.ID = "lbl" & i
            lbl.Text = "Meal: "
            tc.Controls.Add(lbl)
            lbl = New Label
            lbl.ID = "lbl2" & i
            lbl.Text = "<b>" & strMeal & "</b>"
            tc.Controls.Add(lbl)
            tr.Cells.Add(tc)
            tbl.Rows.Add(tr)
           
            tr = New TableRow
            tc = New TableCell
            lbl = New Label
            lbl.ID = "lbl" & i
            lbl.Text = "Date: "
            tc.Controls.Add(lbl)
            lbl = New Label
            lbl.ID = "lbl2" & i
            lbl.Text = "<b>" & strDate & "</b>"
            tc.Controls.Add(lbl)
            tr.Cells.Add(tc)
            tbl.Rows.Add(tr)
           
            tr = New TableRow
            tc = New TableCell
            lbl = New Label
            lbl.ID = "lbl" & i
            lbl.Text = "Duration: "
            tc.Controls.Add(lbl)
            lbl = New Label
            lbl.ID = "lbl2" & i
            lbl.Text = "<b>" & strDuration & "</b>"
            tc.Controls.Add(lbl)
            tr.Cells.Add(tc)
            tbl.Rows.Add(tr)
           
            tr = New TableRow
            tc = New TableCell
            lbl = New Label
            lbl.ID = "lbl" & i
            lbl.Text = "Price: "
            tc.Controls.Add(lbl)
            lbl = New Label
            lbl.ID = "lbl2" & i
            lbl.Text = "<b>" & strPrice & "</b>"
            tc.Controls.Add(lbl)
            tr.Cells.Add(tc)
            tbl.Rows.Add(tr)
                       
            tr = New TableRow
            tc = New TableCell
            hl = New HyperLink
            hl.ID = "h2" & i
            hl.NavigateUrl = strURL
            'hl.NavigateUrl = "http://sun.sax.softvoyage.com/cgi-bin/input-verifforf.cgi?sid=" & strSID
            hl.Text = "<b>" & "Request Space" & "</b></br>"
            tc.Controls.Add(hl)
            tr.Cells.Add(tc)
            tbl.Rows.Add(tr)
     
       i += 1
        Next
        Page.Controls.Add(tbl)
     End Sub

This code traverse through each node but displaying the values of first node every time. Can anyone help me..?

Best Regards
Shaukat
0
Comment
Question by:shwaqar82
  • 3
  • 3
6 Comments
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 17853842
Hi shwaqar82,

get rid of the "//" in the childnodes
strDep = node.SelectSingleNode("DEPARTURE").InnerText


Cheers!
0
 
LVL 60

Accepted Solution

by:
Geert Bormans earned 500 total points
ID: 17854059
shwaqar82,

the "//" makes you start at the root node all over again for every HOTEL
pointing at the first each time

since DEPARTURE is a direct child, you should just put the name there, not the // in front of it

cheers

Geert
0
 

Author Comment

by:shwaqar82
ID: 17854922
i did that but still gives me the same result
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:shwaqar82
ID: 17858053
Hi Geert

It works now thanks for you precious help on time.

Best Regards
Shaukat
0
 

Author Comment

by:shwaqar82
ID: 17858093
Can you help me in displaying the nodes information row wise. I mean i wana display the information like below:

Hotel 1 Information                       Hotel 2 Information
Hotel 3 Information                       Hotel 4 Information
Hotel 5 Information

Right now it displays the information like that:

Hotel 1 Info.
Hotel 2 Info.
Hotel 3 Info.
....

That would be great if you fixed it.

Best Regards
Shaukat Waqar
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 17876648
Hi,

I am not really a VB (script) programmer

What you could do is the following

For Each node In hotelNodes
you could only loop over the hotelNodes with a position mod 2 = 1
and so create the rows
and pick the following node inside the row

If you can't manage that yourself, you can post in the VB(script) TA

cheers
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction In my previous article (http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SSIS/A_9150-Loading-XML-Using-SSIS.html) I showed you how the XML Source component can be used to load XML files into a SQL Server database, us…
Many times as a report developer I've been asked to display normalized data such as three rows with values Jack, Joe, and Bob as a single comma-separated string such as 'Jack, Joe, Bob', and vice versa.  Here's how to do it. 
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.
This is a video describing the growing solar energy use in Utah. This is a topic that greatly interests me and so I decided to produce a video about it.

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now