我有一个带有数据集和gridview的ASP站点,我想显示XML数据。
不会自动生成gridview,并设置为查找hotelid,name,status,city&国家。
目前,我手动编写了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 :(得分:1)
当您将这样的XML文档加载到DataSet中时,它会根据数据创建多个表。
为了仅将酒店信息绑定到GridView,您需要确定数据集中的哪个表包含数据,然后将其绑定到GridView
e.g。
GridView1.DataSource = ds.Tables(index_of_table_which_contains_data)
希望有所帮助。