2012-09-07 54 views
0

我使用的是第三方Web服務。我收到了XML格式的回覆。 現在,我必須表明在網格視圖的XML節點值。 以下代碼我到目前爲止嘗試過。如何填充在Asp.net網格視圖XML節點值?

using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
    { 
     // Get the response stream 
     StreamReader reader = new StreamReader(response.GetResponseStream()); 
     //Label2.Text = reader.ReadToEnd(); 


     XmlDocument xml = new XmlDocument(); 
     xml.Load(reader); 

     XmlNamespaceManager ns = new XmlNamespaceManager(xml.NameTable); 
     ns.AddNamespace("ms", "http://webservices.amazon.com/AWSECommerceService/2005-10-05"); 

     XmlNode image = xml.SelectSingleNode("//ms:URL", ns); 
     XmlNode FormattedPrice = xml.SelectSingleNode("//ms:FormattedPrice", ns); 

現在,我想在網格視圖中顯示XMLnode值的值。 請告訴我,如果你需要更多的信息。 在此先感謝。

回答

0

解決方案:

而不是在xmldocument中獲取HttpResponse。 我用的XNamespace和的XDocument。

XNamespace ns = "http://webservices.amazon.com/AWSECommerceService/2005-10-05"; // Linq 
XDocument xd = XDocument.Load(response.GetResponseStream()); 

然後使用Linq讀取所有Vlaues。例:

var Image = xd.Descendants(ns + "Items").Elements(ns + "Item").Select(img => img.Elements(ns + "MediumImage").Select(img1 => (string)img1.Element(ns + "URL")).FirstOrDefault() ?? "Null").ToList();