2016-03-22 86 views
2

我是VB.net的新手,我无法确定如何从HttpWebRequest将XML数据加载到DropDownList中。我想要加载到DropDownList中的数据是Merchant + Price。楼下是我的代码:从HttpWebRequest XML填充DropDownList XML VB.net

Dim s As HttpWebRequest 
s = HttpWebRequest.Create("myURL") 
s.Method = "GET" 
Dim postresponse As HttpWebResponse 
postresponse = DirectCast(s.GetResponse, HttpWebResponse) 

Dim postreqreader As New Stream(postresponse.GetResponseStream()) 

Dim returnData As String = postreqreader.ReadToEnd 

postresponse.Close() 

我从returnData找回XML响应是:

<xml version="1.0" encoding="UTF-8" ?> 
<Response> 
    <ID>123</ID> 
    <Items> 
     <Item> 
      <Isbn>123456789</Isbn> 
      <Offers> 
        <Offer> 
         <Isbn>123456789</Isbn> 
         <Merchant>Vendor1</Merchant> 
         <Price>3.00</Price> 
         <Shipping>8.00<Shipping> 
        </Offer> 
        <Offer> 
         <Isbn>123456789</Isbn> 
         <Merchant>Verndor2</Merchant> 
         <Price>3.00</Price> 
         <Shipping>8.00<Shipping> 
        </Offer> 
      </Offers> 
     </Item> 
    </Items> 
</Response> 

回答

0

首先确保关闭运输标签。

尝试这样:

Dim ds As New DataSet() 
ds.ReadXml(new XmlTextReader(new StringReader(returnData))) 

ds.Tables("Offer").Columns.Add("MerchantPrice", GetType(String), "Merchant + ' - ' + Price") 

Dim dv As DataView = ds.Tables("Offer").DefaultView 
dv.Sort = "Merchant" 

ddlMerchant.DataTextField = "MerchantPrice" 
ddlMerchant.DataValueField = "Isbn" 
ddlMerchant.DataSource = dv 
ddlMerchant.DataBind() 
+0

感谢。这项工作。我如何将下拉菜单中的两个或多个字段组合在一起? – Kluong

+0

当然。只更新了代码以显示两个字段 – ElenaDBA

0

先使用此代码将XML中的数据集

DataSet ds; 
    StringReader reader = new StringReader(string); 
    ds.ReadXml(reader); 

和然后将其绑定到DropDownList