嗨,我剛剛在這個網站上註冊,因爲我需要一些幫助。HtmlAgilityPack |錯誤地檢索表節點
我想從nyaa.eu網站獲得結果。
基本上是:
- 表節點稱爲
<table class="tlist">
- 每一行節點被稱爲
<tr class="tlistrow">
有時也很'信任tlistrow'等 - 我嘗試檢索的節點是:
<td class="tlistname"> <td class="tlistsize"> <td class="tlistsn"> and <td class="tlistln">
首先,我正在檢索一張表格,包含了所有關於種子的信息:
HtmlNode hnTable = doc.DocumentNode.SelectSingleNode("//table[@class='tlist']");
所以,接下來的事情就是獲取所有的行包含在它的類屬性「tlistrow」:
HtmlNodeCollection hncRows = hnTable.SelectNodes("//tr[contains(@class,'tlistrow')]");
最後的問題是,當我讀到的每一個節點它總是同一個:
foreach (HtmlNode row in hncRows)
{
foreach (HtmlNode child in row.ChildNodes)
{
if (child.SelectSingleNode("//td[@class='tlistname']") != null)
{
MessageBox.Show("Something found!\n\n" + child.SelectSingleNode("//td[@class='tlistname']").InnerText);
break;
}
}
}
在MessageBox顯示的文本始終是相同的,它看起來像只選擇一個節點多次。
我該如何解決這個問題,或者如果我做錯了什麼,請糾正我。
耶,這是我見過的最簡單的修復。非常感謝!我其實從來沒有讀過XPath,所以這就是爲什麼我失敗了...... –
@KonradPiesiak:不客氣。 XPath是一個非常神奇,強大和優雅的語言(這些品質在版本2.0和3.0中都有所增長)。它值得系統學習。 –