0

サードパーティの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値の値をグリッドビューで表示したいと思います。さらに詳しい情報が必要な場合はお知らせください。前もって感謝します。

4

2 に答える 2

0

そのためにXMLDataSourceを使用できます。

http://www.codeproject.com/Articles/10898/Introduction-to-XMLDataSource-control-in-ASP-NET-2

よろしくお願いします。

于 2012-09-07T07:32:29.863 に答える
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();
于 2012-10-06T10:57:42.167 に答える