2012-09-07 31 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();