0

こんにちは私はこのことについて学びました私はそれを逆シリアル化して中身を見るよりも応答でサイトgetxmlにリクエストを送信する必要があります...私はリクエスト逆シリアル化メソッドとストリームメソッドとXmlスキーマを作成しましたが今は次に何がわかりませんうまくいかないので、誰かがいくつかの素晴らしいチュートリアルについて知っているなら、plsは私にリンクを与えます。

public static class LoadXml
{
    public static root material;



    public static void LoadXML()
    {
        var serviceUrl = "http://api.deezer.com/2.0/artist/27&output=xml";
        string serviceName = "Deezer";

        HttpWebRequest request = null;
        WebResponse response = null;

        request = WebRequest.Create(serviceUrl) as HttpWebRequest;
        request.Method = "GET";
        request.ContentType = " text/xml";



        material = Deserialize<root>(GetResponseStream(request, response, serviceName));

        Console.WriteLine(material.ToString());
    }

    public static T Deserialize<T>(MemoryStream stream)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(T));
        T result = (T)serializer.Deserialize(stream);

        return result;
    }

    public static MemoryStream GetResponseStream(HttpWebRequest request, WebResponse response, string debugServiceName)
    {

        response = request.GetResponse();

        MemoryStream stream = new MemoryStream();
        response.GetResponseStream().CopyTo(stream);
        stream.Position = 0;

        return stream;
    }

}
4

1 に答える 1

1

結果を[XDocument][1]に配置(またはロード)し、ドキュメントからデータを操作および抽出することにより、そこから操作します。

開始点としてURLを使用すると、これはスニペット(ロードするのが簡単な方法です。試してみてください)です。ここでURLをロードし、返された構造が(\ root \ name)である場合はターゲットの子ノードを調べます。

XDocument doc = XDocument.Load(@"http://api.deezer.com/2.0/artist/27&output=xml");

Console.WriteLine ( doc.ToString() );

/*
<root>
  <id><![CDATA[27]]></id>
  <name><![CDATA[Daft Punk]]></name>
  <link><![CDATA[http://www.deezer.com/artist/27]]></link>
  <picture><![CDATA[http://api.deezer.com/2.0/artist/27/image]]></picture>
  <nb_album><![CDATA[54]]></nb_album>
  <nb_fan><![CDATA[592180]]></nb_fan>
  <radio><![CDATA[1]]></radio>
  <type><![CDATA[artist]]></type>
*/

Console.WriteLine ( doc.Element("root").Element("name").Value);
// Outputs:
// Daft Punk

代替ロードの更新(解析)

var xml = @"
<root>
  <id><![CDATA[27]]></id>
  <name><![CDATA[Daft Punk]]></name>
  <link><![CDATA[http://www.deezer.com/artist/27]]></link>
  <picture><![CDATA[http://api.deezer.com/2.0/artist/27/image]]></picture>
  <nb_album><![CDATA[54]]></nb_album>
  <nb_fan><![CDATA[592180]]></nb_fan>
  <radio><![CDATA[1]]></radio>
  <type><![CDATA[artist]]></type>
</root>";

var doc = XDocument.Parse( xml );

Console.WriteLine ( doc.Element("root").Element("name").Value);
// Outputs
// Daft Punk
于 2013-01-03T19:43:13.413 に答える