0

这段代码给我一个奇怪的异常。Node "<span class="OrganisationOut"></span>" was not found in the collection但是当我检查 span 的 outerHTML 时,它的<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());
}
4

1 回答 1

1

由于您在当前节点下递归地获取所有跨度(这就是//XPATH 中的意思),您可能会得到一个span不是 的孩子node,而是一个孙子。

在这种情况下,node.RemoveChild(span)如您所见,调用将失败。你想要做的是span.ParentNode.RemoveChild(span).

于 2013-03-03T18:30:08.883 回答