3
嘗試分析基於示例表在這個崗位HTML Agility pack - parsing tablesHtmlAgilityPack的XPath錯誤
我碰到一些很奇怪的問題,當我試圖解析使用C#+ XNA和HtmlAgilityPack網頁,但是。這裏是我的代碼稍加修改形成其他職位:
foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table"))
{
spriteBatch.DrawString(font, table.Id, new Vector2(0, num * 16), Color.Black);
num++;
foreach (HtmlNode row in table.SelectNodes("tr"))
{
spriteBatch.DrawString(font, "row", new Vector2(0, num * 16), Color.Black);
num++;
foreach (HtmlNode cell in row.SelectNodes("th|td"))
{
spriteBatch.DrawString(font, "cell: " + cell.InnerText, new Vector2(0, num * 16), Color.Black);
}
}
}
然而,當我擊中我得到一個奇怪的錯誤,我把我的問題的截圖在這裏斷點的第一行:
然而如果我刪除了斷點,那麼當我點擊第二個foreach循環時,我會得到一個NullReferenceException錯誤。我假設我沒有用XPath返回任何實際的表,但第一個錯誤令我困惑。如果這只是一個Xpath問題,我會花更多的時間來試圖瞭解如何使用它。
這裏的網頁我試圖解析:
<div class="page">
<header>
<nav>
<ul id="menu">
<li><a href="/">Home</a></li>
<li><a href="/Home/About">About</a></li>
<li><a href="/Score">Scoreboard</a></li>
</ul>
</nav>
</header>
<section id="main">
<h2>High Scores</h2>
<div id="grid">
<table class="grid">
<thead>
<tr class="head">
<th scope="col">
<a href="/Score?sort=Name&sortdir=ASC">Name</a>
</th>
<th scope="col">
<a href="/Score?sort=Points&sortdir=DESC">Points</a>
</th>
<th scope="col">
<a href="/Score?sort=Date&sortdir=ASC">Date</a>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>sec_goat</td>
<td>10</td>
<td>9/8/1980 12:00:00 AM</td>
</tr>
<tr class="alt">
<td>tankorsmash</td>
<td>100</td>
<td>10/10/2010 12:00:00 AM</td>
</tr>
<tr>
<td>sec_goat</td>
<td>1000</td>
<td>8/12/2012 12:00:00 AM</td>
</tr>
<tr class="alt">
<td>tankorsmash</td>
<td>10000</td>
<td>12/12/2012 12:00:00 AM</td>
</tr>
<tr>
<td>sec_goat</td>
<td>100000</td>
<td>1/1/2013 12:00:00 AM</td>
</tr>
<tr class="alt">
<td>tankorsmash</td>
<td>1000000</td>
<td>9/18/2012 12:00:00 AM</td>
</tr>
<tr>
<td>bob</td>
<td>99999999</td>
<td>9/8/1980 12:00:00 AM</td>
</tr>
我相當確定這是我的XPath術語的問題。我使用[這篇文章](http://stackoverflow.com/questions/3369294/html-agility-pack-loop-through-rows-and-columns)的路徑抓取錶行和列,它按預期工作。 –
我已經意識到我在屏幕截圖中獲得的奇怪錯誤與調試有關,當我嘗試進入XPath邏輯時出現錯誤。仍然不知道如何解決這個問題,但它是這樣的。 –