0

HTML の特定の部分を返すことで、AngleSharp を把握しようとしています。

これまでのところ、それは私のコードです:

using (WebClient client = new WebClient()) 
        {
            string htmlCode = client.DownloadString("http://www.planetradio.de/music/trackfinder.html");

            var parser = new HtmlParser();
            var document = parser.Parse(htmlCode);

            var blueListItemsLinq = document.All.Where(m => m.LocalName == "span id" && m.ClassList.Contains("headerTracklistCurrentSongArtist"));

            foreach (var item in blueListItemsLinq)


                label.Content = item;
        }

返してほしいのは、現在のアーティストで、次の html にある必要があります。

<div id="headerTracklistCurrentSong">

        <span id="headerTracklistCurrentSongArtist"><a href="music/trackfinder.html">Olly Murs</a></span>
        <span id="headerTracklistCurrentSongTitle"><a href="music/trackfinder.html">Kiss Me</a></span>              

しかし、私は間違いを犯したようです....だから、誰かがここで私を助けて説明してくれたらうれしいです...

回答してくださった皆様、ありがとうございました。:)

4

1 に答える 1

2

スパン要素は次のように解析されるAngleSharp.Dom.Html.HtmlSpanElement ため、クエリは次のようになります。

var blueListItemsLinq = document.All.Where(m => m.LocalName == "span" && m.Id == "headerTracklistCurrentSongArtist");

次に、次のようなテキスト/値を取得できます。

foreach (var item in blueListItemsLinq)
{
    label.Content = item.TextContent;  // "Olly Murs"
    var child = item.FirstChild as AngleSharp.Dom.Html.IHtmlAnchorElement;
    var text = child.Text;             // "Olly Murs"
    var path = child.PathName;         // "/music/trackfinder.html"
}

更新しました

現在のアーティスト名は「planetradio.de/music/trackfinder.html」の表に示されているため、次のような名前を取得できます。

var hitfinderTable = document.All.Where(m => m.Id == "hitfindertable").First() as AngleSharp.Dom.Html.IHtmlTableElement;

foreach (var row in hitfinderTable.Rows)
{
    var artistName = row.Cells[2].TextContent;
}
于 2015-11-20T01:05:43.420 に答える