Web services 如何在Asp.net的网格视图中填充XML节点值?

Web services 如何在Asp.net的网格视图中填充XML节点值?,web-services,rest,amazon-web-services,Web Services,Rest,Amazon Web Services,我正在使用第三方Web服务。我得到了XML格式的响应。 现在,我必须在网格视图中显示XML节点值。 到目前为止,我尝试了以下代码 using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { // Get the response stream StreamReader reader = new StreamReader(response.GetRespons

我正在使用第三方Web服务。我得到了XML格式的响应。 现在,我必须在网格视图中显示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值的值。 如果你需要更多信息,请通知我。
提前感谢。

您可以使用XmlDataSource:

致以最诚挚的问候。

解决方案:

而不是在xmldocument中获取HttpResponse。 我使用了XNamespace和XDocument

XNamespace ns = "http://webservices.amazon.com/AWSECommerceService/2005-10-05";    // Linq
XDocument xd = XDocument.Load(response.GetResponseStream());
然后使用Linq读取所有Vlaue。例如:

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();