如何使用 anglesharp 从 HTML table 中删除所有行?

How is it possible to remove all rows from the HTML table using anglesharp?

如何使用 anglesharp 从 HTML table 中删除所有行?

我正在尝试删除 table 中的所有行。 I've read this documentation,但不会删除行。

我的代码如下所示:

public void DeleteRows(IElement table)
{
    foreach (var row in table?.QuerySelectorAll("tr"))
    {
        row.Remove();
    }
    var lengthAfterDeletion = table?.QuerySelectorAll("tr")?.Length;
}

如何使用 anglesharp 从 HTML table 中删除所有行?

我想我们同时解决了这个问题(参见 https://github.com/AngleSharp/AngleSharp/issues/838)。

仅供将来参考(以防其他人遇到同样的问题,这种情况很容易发生):

public void DeleteRows(IElement table)
{
    var rows = table?.QuerySelectorAll("tr").ToArray();
    foreach (var row in rows)
    {
        row.Remove();
    }
    var legnthAfterDeletion = table?.QuerySelectorAll("tr")?.Length;
}

关键是在更改 DOM 之前获取结果的静态快照。因此,来自 LINQ 的 .ToArray() 可以应用于任何迭代器。