【问题标题】:How is it possible to remove all rows from the HTML table using anglesharp?如何使用 Anglesharp 从 HTML 表中删除所有行?
【发布时间】:2020-01-17 09:32:58
【问题描述】:

如何使用 Anglesharp 从 HTML 表格中删除所有行?

我正在尝试删除表中的所有行。 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.Rows.Remove(row);”吗?

标签: c# anglesharp


【解决方案1】:

我想我们在此期间已经弄清楚了(请参阅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() 可以应用于任何迭代器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 2012-03-15
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多