1

この XML ドキュメントの XML ノードを抽出する必要があります。

http://api.chartlyrics.com/apiv1.asmx/SearchLyricDirect?artist=michael%20jackson&song=bad

私はこれを理解することができません。以下は、その URL から XML を読み取るために使用する現在のコードです。

private void button1_Click(object sender, RoutedEventArgs e)
{
    WebClient wc = new WebClient();
    wc.DownloadStringCompleted += HttpsCompleted;
    wc.DownloadStringAsync(new Uri("http://api.chartlyrics.com/apiv1.asmx/SearchLyricDirect?artist=michael%20jackson&song=bad"));
}

private void HttpsCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if (e.Error == null)
    {
        XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None);
        this.textBox1.Text = xdoc.LastNode.ToString();
    }
}

lyric提供された URL から XML ドキュメント内からノードにアクセスするにはどうすればよいですか?

4

1 に答える 1

4

この種のシナリオでは、Linq To Xml を使用します。xmlns="http://api.chartlyrics.com/"xml の結果に名前空間 ( ) があることに注意してください。

本当に基本的な例は次のとおりです。

void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if (e.Error == null)
    {
        XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None);
        var lyric = xdoc.Descendants(XName.Get("Lyric","http://api.chartlyrics.com/")).FirstOrDefault();

        this.textBox1.Text = lyric.Value;
    }
}
于 2013-06-04T11:24:10.357 に答える