【问题标题】:XML VB.net not finding propertyXML VB.net 找不到属性
【发布时间】:2012-09-14 08:35:10
【问题描述】:

我有一个带有数据集和 gridview 的 ASP 站点,我想显示 XML 数据。

gridview 不是自动生成的,它被设置为查找hotelid、name、status、city & country。

目前,我已经手动编写了 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

`

如果我删除只留下唯一的酒店信息,它会起作用并找到该属性;

&lt;HOTELS&gt;&lt;HOTEL&gt;&lt;HOTELID&gt;hot01&lt;/HOTELID&gt;&lt;NAME&gt;hotel test 1&lt;/NAME&gt;&lt;CITY&gt;birmingham&lt;/CITY&gt;&lt;COUNTRY&gt;england&lt;/COUNTRY&gt;&lt;STATUS&gt;active&lt;/STATUS&gt;&lt;/HOTEL&gt;

&lt;HOTEL&gt;&lt;HOTELID&gt;hot02&lt;/HOTELID&gt;&lt;NAME&gt;hotelabctestabc2abc&lt;/NAME&gt;&lt;CITY&gt;barca&lt;/CITY&gt;&lt;COUNTRY&gt;spain&lt;/COUNTRY&gt;&lt;STATUS&gt;inactive&lt;/STATUS&gt;&lt;/HOTEL&gt;&lt;HOTEL&gt;

&lt;HOTELID&gt;hot03&lt;/HOTELID&gt;&lt;NAME&gt;hotelabctestabcire&lt;/NAME&gt;&lt;CITY&gt;dublin&lt;/CITY&gt;&lt;COUNTRY&gt;ireland&lt;/COUNTRY&gt;&lt;STATUS&gt;active&lt;/STATUS&gt;&lt;/HOTEL&gt;&lt;/HOTELS&gt;

我做错了什么?

谢谢。

【问题讨论】:

  • 在不删除其他数据的情况下,您的 DataSet 包含多少个表?
  • 我希望您的酒店信息在其中一张表中,因此您需要将数据源更改为 GridView.DataSource = ds.Tables(index_of_table_which_contains_data)
  • 哦,哇,解决了 :) 是表号。 3 非常感谢,非常感谢 :)

标签: xml vb.net


【解决方案1】:

当您将这样的 XML 文档加载到 DataSet 中时,它会根据数据创建多个表。

为了仅将酒店信息绑定到您的 GridView,您需要确定数据集中的哪个表包含数据,然后将其绑定到 GridView

例如

GridView1.DataSource = ds.Tables(index_of_table_which_contains_data)

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 2018-05-06
    • 2021-05-19
    相关资源
    最近更新 更多