您可以在下面找到用于筛选经济日历的代码摘录。它使用 XPath 解析的 HTML 页面包括该行作为表中的第一行。(只粘贴这一行而不是整个 HTML 页面。)
<tr class="calendar_row newday singleevent" data-eventid="42064"> <td class="date"><div class="date">Sun<div>Dec 23</div></div></td> <td class="time">All Day</td> <td class="currency">JPY</td> <td class="impact"> <div title="Non-Economic" class="holiday"></div> </td> <td class="event"><div>Bank Holiday</div></td> <td class="detail"><a class="calendar_detail level1" data-level="1"></a></td> <td class="actual"> </td> <td class="forecast"></td> <td class="previous"></td> <td class="graph"></td> </tr>
这段代码使用 XPath 选择第一行:
var doc = new HtmlDocument();
doc.Load(new StringReader(html));
var rows = doc.DocumentNode.SelectNodes("//tr[@class=\"calendar_row\"]");
var rowHtml = rows[0].InnerHtml;
问题是 rowHtml 返回这个:
<td class="date"></td> <td class="time">All Day</td> <td class="currency">EUR</td> <td class="impact"> <div title="Non-Economic" class="holiday"></div> </td> <td class="event"> <div>French Bank Holiday</div> </td> <td class="detail"><a class="calendar_detail level2" data-level="2"></a></td> <td class="actual"> </td> <td class="forecast"></td> <td class="previous"></td> <td class="graph"></td>
现在您可以看到日期的 td 列的内容消失了!为什么?
我已经尝试了很多东西,并且很难理解为什么它会删除该列的内容。其他列有它保留的内容。那么日期列有什么问题呢?
某处是否存在某种设置或属性来导致或防止内容丢失?
即使您不知道出了什么问题,但有一些关于如何进行更多调查的建议。