2012-09-14 58 views
0

我有一個ASP網站的數據集和gridview,我想要顯示XML數據。XML VB.net沒有找到屬性

gridview不會自動生成,並且設置爲查找hotelid,名稱,狀態,城市&國家/地區。

目前,我已經手動編寫了XML,但是我已經包含了這個XML中所需的包裝器標籤和附加錯誤標籤,但是隻要包含它們,就會出現一個錯誤,表示GridView無法找到「HOTEL_ID」屬性。它工作正常,沒有額外的數據。

XML例如:

<REQUEST><ACTION>HOTEL_LIST</ACTION><RESPONSE><RESULT>0</RESULT> 
<HOTELS> 
<HOTEL><HOTELID>hot01</HOTELID><NAME>hotel test 1</NAME><CITY>birmingham</CITY><COUNTRY>england</COUNTRY><STATUS>active</STATUS></HOTEL> 
<HOTEL><HOTELID>hot02</HOTELID><NAME>hotelabctestabc2abc</NAME><CITY>barca</CITY><COUNTRY>spain</COUNTRY><STATUS>inactive</STATUS></HOTEL> 
<HOTEL><HOTELID>hot03</HOTELID><NAME>hotelabctestabcire</NAME><CITY>dublin</CITY><COUNTRY>ireland</COUNTRY><STATUS>active</STATUS></HOTEL>  
</HOTELS> 
<ERRORS><ERROR><CODE></CODE><MESSAGE></MESSAGE></ERROR></ERRORS></RESPONSE></REQUEST>` 

這裏是VB代碼:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    Dim teststring As String = "THE XML SHOWN ABOVE" 

    Dim ds As New DataSet() 
    Dim doc As New XmlDocument() 

    doc.LoadXml(teststring) 
    ds.ReadXml(New System.IO.StringReader(doc.OuterXml)) 

    GridView1.DataSource = ds 
    GridView1.DataBind() 


End Sub 

`

如果我刪除,只留下唯一的酒店信息,它的工作原理,並發現該財產;

<HOTELS><HOTEL><HOTELID>hot01</HOTELID><NAME>hotel test 1</NAME><CITY>birmingham</CITY><COUNTRY>england</COUNTRY><STATUS>active</STATUS></HOTEL>

<HOTEL><HOTELID>hot02</HOTELID><NAME>hotelabctestabc2abc</NAME><CITY>barca</CITY><COUNTRY>spain</COUNTRY><STATUS>inactive</STATUS></HOTEL><HOTEL>

<HOTELID>hot03</HOTELID><NAME>hotelabctestabcire</NAME><CITY>dublin</CITY><COUNTRY>ireland</COUNTRY><STATUS>active</STATUS></HOTEL></HOTELS>

我在做什麼錯?

謝謝。

+0

當您不刪除其他數據時,您的DataSet包含多少個表? –

+0

伯爵說6 – Rexxo

+1

我希望你的酒店信息是在其中一個表中,所以你需要改變你的數據源爲'GridView.DataSource = ds.Tables(index_of_table_which_contains_data)' –

回答

1

當您將這樣的XML文檔加載到DataSet中時,它會根據數據創建多個表。

爲了綁定僅酒店信息到你的GridView,您將需要確定哪些表中數據集包含的數據,然後綁定這個到GridView

例如

GridView1.DataSource = ds.Tables(index_of_table_which_contains_data) 

希望有所幫助。

+0

再次感謝! *榮譽* – Rexxo