这段代码给我一个奇怪的例外。 Node "<span class="OrganisationOut"></span>" was not found in the collection
但是当我检查span {em}的外部HTML时<span class="OrganisationOut">National Cheng Kung University</span>
。为什么要尝试删除不同的跨度?
doc = web.Load(urlTeams);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//tr[contains(@id,'Cell')]"))
{
HtmlNode span = node.SelectSingleNode(".//span");
lbResults2.Items.Add(span.InnerText);
lbResults.Items.Add(node.RemoveChild(span).InnerText.Trim());
}
答案 0 :(得分:1)
由于您在当前节点下递归获取所有跨度(这是//
在XPATH中的含义),您可能会得到span
不是node
的子节点,但是一个大孩子。
在这种情况下,如您所见,呼叫node.RemoveChild(span)
将失败。你想要做的是span.ParentNode.RemoveChild(span)
。