1
這是一個約食物開放DATABSE頁:選擇在表中的所有textnodes使用XPath
http://www.dabas.com/ProductSheet/Details.ashx/121308
林試圖從使用XPath此頁面的一些信息。 我感興趣的表格叫做Näringsvärde。 我想獲取保存爲字符串的「Näringsvärde」內的所有textnode。
這所鏈接的代碼的相關部分的上方:
<!DOCTYPE html>
<html>
...
<body>
...
<table class="width100" style="page-break-inside: avoid">
<caption>
Produktinformation
<img src="../../images/ProductSheet/draw-triangle3.png" id="toggleProduktinformation"
class="imgCaptionOn" />
</caption>
<tbody id="tbodyProduktinformation">
<tr>
<td class="col1">
Ursprungsland:
</td>
<td>
Sverige </td>
</tr>
...
</tbody>
</table>
<table id="tableHover" class="width100 marginTop30 bgTable">
<tr class="nohover">
<td class="tdLeft48 padding0">
<table id="nutritiveTabel" class="leftTable" style="page-break-inside: avoid">
<caption>
Näringsvärde
<img src="../../images/ProductSheet/draw-triangle3.png" id="toggleNutritiveValues"
class="imgCaptionOn" />
</caption>
<tbody id="tbodyNutritiveValues">
<tr id="divNutritiveValues">
<td class="padding">
<table class="noBorder width100">
<tr>
<td class="col1">
Tillagningsstatus:
</td>
<td>Tillagad</td>
<td colspan="2">
&amp;nbsp;
</td>
</tr>
...
</table>
</td>
</tr>
</tbody>
</table>
</td>
...
</html>
我試圖用這樣的事情,到目前爲止,但它沒有工作:
public List<string> GetNaring(string xid) {
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(xid);
var xpath = "/html/body/div/div[2]/div[2]/table[2]/tbody/tr/td/table/tbody";
var links = doc.DocumentNode.SelectNodes(xpath);
return links.Select(n => n.InnerText).ToList();
}
但是這隻能給我回復null,我錯過了什麼?
非常感謝你的代碼和課程!它工作完美,我一定會在下次再次訪問這個問題! – user2915962
林不知道爲什麼,但這段代碼給了所有信息兩次..,你有什麼想法可能是什麼?也許在其他地方出錯了? – user2915962
如果信息未在原始文件中複製,則問題不在XPath表達式中。 – helderdarocha