Прежде чем объяснять, я использую VB.net и HtmlAgilityPack.Как я могу получить несколько похожих тегов с помощью HtmlAgilityPack?
У меня есть нижний html, все три секции имеют одинаковый формат. Я использую htmlagilitypack для извлечения данных из заголовка и даты. Мой код извлекает название правильно, но дата только извлекается из первой инстанции и повторяется 3 раза:
HtmlAgilityPack код:
For Each h4 As HtmlNode In docnews.DocumentNode.SelectNodes("//h4[(@class='title')]")
Dim date1 As HtmlNode = docnews.DocumentNode.SelectSingleNode("//span[starts-with(@class, 'date ')]")
Dim newsdate As String = date1.InnerText
MessageBox.Show(h4.InnerText)
MessageBox.Show(newsdate)
Next
я думал, что быть в каждом h4, я связанный с ним дату соответственно .. .
HTML код:
<div class="article-header" style="" data-itemid="920729" data-source="ABC" data-preview="Text 1">
<h4 class="title"><a href="URL" class="title" title="Text 1">Text for Mr. A</a></h4>
<div class="byline">
<span class="date timestamp"><span title="29 November 2013">29-11-2013</span></span>
<span class="source" title="AGE">18</span>
</div>
<div class="preview">Text 1 Preview</div>
</div>
<div class="article-header" style="" data-itemid="920720" data-source="ABC" data-preview="Text 2">
<h4 class="title"><a href="URL" class="title" title="Text 2">Text for Mr. B</a></h4>
<div class="byline">
<span class="date timestamp"><span title="27 November 2013">27-11-2013</span></span>
<span class="source" title="AGE">25</span>
</div>
<div class="preview">Text 2 Preview</div>
</div>
<div class="article-header" style="" data-itemid="920719" data-source="ABC" data-pre+view="Text 3">
<h4 class="title"><a href="URL" class="title" title="Text 3">Text for Mr. C</a></h4>
<div class="byline">
<span class="date timestamp"><span title="22 October 2013">22-10-2013</span></span>
<span class="source" title="AGE">20</span>
</div>
<div class="preview">Text 3 Preview</div>
</div>
Окончательный выход должен быть:
Текст для г A
29-11-2013
Текст для г B
27-11-2013
Текст для г-н C
22 -10-2013
Что я буду получать с кодом:
Текст для г A
29-11-2013
Текст для г B
29-11-2013
Текст для г-н C
29-11-2013
Любая помощь очень ценится.
Я пробовал код, и он сгенерировал ошибку «System.NullReferenceException», но когда я удалил .// и заменил его //, он работал так же, как и раньше. Такая же дата для всех трех экземпляров. .. спасибо за ваш быстрый ответ! –
'//' будет искать из корневого узла. Он должен начинаться с './/' – jessehouwing
Спасибо jessehouwing, я думаю, я знаю, где моя ошибка, тег h4 закрывается перед датой ... Будет работать над этим сейчас. Еще раз спасибо ! –