У меня есть следующий HTML:HTMLAgilityPack и XPath Target
<table>
<tr>
<td><a href="#">Tournament Name</a>
<br /> Tournament Address </td>
</tr>
<tr>
<td><a>View Available Space and Book Online</a></td>
</tr>
<tr>
<td>
<em>Event Cost:</em> $$$
</td>
<td> Date and Time </td>
</tr>
<tr>
<td>
<p>
<strong>
<img title="Boy's Teams can enter this tournament" />
<img title="Girl's Teams can not enter this tournament" />
<img title="Disabled Teams can not enter this tournament" />
</strong>
</p>
</td>
<td>
TimeFrame
</td>
</tr>
<tr>
<td>
<img src="image.gif" />
<img src="image.gif" />
<img src="image.gif" />
<img src="image.gif" />
<img src="image.gif" />
<img src="image.gif" />
<img src="image.gif" />
<img src="image...." />
<img src="image...." />
<img src="image...." />
<img src="image...." />
</td>
</tr>
</table>
(Эта таблица повторяется много раз на странице).
Я пытаюсь извлечь имя турнира .
У меня есть следующий C# код:
namespace AcademyScraper
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void saveBtn_Click(object sender, EventArgs e)
{
string url = "http://www.reddishvulcans.com/uk_tournament_database.asp";
var Webget = new HtmlWeb();
var doc = Webget.Load(url);
var root = doc.DocumentNode;
var nodes = root.Descendants();
HtmlNodeCollection tableCollection = doc.DocumentNode.SelectNodes("//div[@class='infobox']/table");
for (Int32 i = 0; i < tableCollection.Count(); i++)
{
HtmlNode tournamentName = tableCollection[i].SelectSingleNode("/tr[1]/td/a");
MessageBox.Show(tournamentName.InnerText);
// I get an exception here
}
}
}
}
Проблема у меня, что независимо от того, что я стараюсь, я не могу целевой тег, содержащий название турнира. Если я сделаю MessageBox.Show(tableCollection[i].OuterHTML);
, содержимое таблицы будет прекрасно отображаться внутри почтового ящика без проблем. Тем не менее, я получаю исключение ссылки всякий раз, когда я пытаюсь получить имя турнира. Основываясь на HTML, я думаю, что это должно быть правильно.