AngleSharp return 跨度 ID
AngleSharp return span id
我正试图通过 returning 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;
}
我想要它 return 是当前的艺术家,它应该在 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>
但我似乎犯了一个错误....所以如果有人能在这里帮助我并向我解释一下我会很高兴...
在此先感谢大家的回答。 :)
跨度元素被解析为AngleSharp.Dom.Html.HtmlSpanElement
所以你的查询应该是:
var blueListItemsLinq = document.All.Where(m => m.LocalName == "span" && m.Id == "headerTracklistCurrentSongArtist");
然后你可以得到这样的text/values:
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" 的 table 中,您可以获得这样的姓名:
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;
}
我正试图通过 returning 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;
}
我想要它 return 是当前的艺术家,它应该在 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>
但我似乎犯了一个错误....所以如果有人能在这里帮助我并向我解释一下我会很高兴...
在此先感谢大家的回答。 :)
跨度元素被解析为AngleSharp.Dom.Html.HtmlSpanElement
所以你的查询应该是:
var blueListItemsLinq = document.All.Where(m => m.LocalName == "span" && m.Id == "headerTracklistCurrentSongArtist");
然后你可以得到这样的text/values:
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" 的 table 中,您可以获得这样的姓名:
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;
}