c# - 使用 LINQ to XML 遍历 HTML 表

标签 c# html xml linq linq-to-xml

因此,我可以轻松地使用 LINQ to XML 遍历正确设置的 XML 文档。但是我在弄清楚如何将它应用到 HTML 表格时遇到了一些问题。这是设置:

<table class='inner'
       width='100%'>
    <tr>
        <th>Area</th>
        <th>Date</th>
        <th>ID</th>
        <th>Name</th>
        <th>Email</th>
        <th>Zip Code</th>
        <th>Type</th>
        <th>Amount</th>
    </tr>
    <tr>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
    </tr>
    <tr>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
    </tr>
</table>

本质上,可以有无数行,我希望能够逐行相应地检查数据。谁能指出我正确的方向?为此,我应该使用 LINQ 以外的工具吗?

编辑:很抱歉造成混淆,我的问题是我试图从中收集数据的页面是 HTML,而不是 XML。确切的扩展名是“.aspx.htm”。这似乎没有正确加载,即使加载正确,我也不确定如何遍历 HTML 页面,因为在我试图从中获取数据的表之前有一个表。

例如,这是我试图从中获取信息的表的 XPATH:

/html/body/form/div[3]/table/tbody/tr[5]/td/table

最佳答案

XElement myTable = xdoc.Descendants("table").FirstOrDefault(xelem => xelem.Attribute("class").Value == "inner");
IEnumerable<IEnumerable<XElement>> myRows = myTable.Elements().Select(xelem => xelem.Elements());

foreach(IEnumerable<XElement> tableRow in myRows)
{
    foreach(XElement rowCell in tableRow)
    {
        // tada..
    }
}

关于c# - 使用 LINQ to XML 遍历 HTML 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3702626/

相关文章:

c# - 以编程方式设置发布页面内容

c# - 在 Debug模式下未获取 DotNetCore 授权策略

html - CSS:背景在移动设备上不拉伸(stretch)

javascript - 点击下面的一个div元素?

xml - 在 SVG 中嵌入 SVG?

C#:从 DataTable 中检索前 n 条记录

c# - Format Decimal 2 Places - 无尾随零

jQuery 切换类以删除高亮

javascript - 遍历 xml 节点的所有属性

xml - Hadoop集群设置:连接被拒绝错误