2015-11-19 3 views
0

Я пытаюсь захватить AngleSharp, возвращая определенную часть html.AngleSharp return span id

До сих пор это мой код:

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>    

Но я, кажется, допустили ошибку .... так что я был бы рад, если бы кто-то мог мне помочь здесь и объяснить это мне ...

Спасибо заранее всем, кто отвечает. :)

ответ

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/musi c/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; 
} 
+0

благодарит за ваш ответ! Но я до сих пор не могу получить информацию/текст из него .... я не получаю никаких ошибок, хотя .... :( – scitch

+0

@scitch Вы можете получить текст из 'item.TextContent' в' foreach' loop. – jhmt

+0

Еще раз спасибо, мне очень жаль беспокоить вас. Я тоже это пробовал, но он, похоже, не работал ... так как я действительно новичок в этом, я не могу быть уверенным что я получил правильный html, так извините, если я должен спросить вас, но я хочу убедиться: Это код, который я хочу получить из веб-элемента (по крайней мере, я думаю, это тот, который мне нужен ....) : Dj Snake & Alunageorge И я получаю planetradio.de/Music/trackfinder.html так что в теории это должно быть право один ..... не должен он – scitch

 Смежные вопросы

  • Нет связанных вопросов^_^