代码之家  ›  专栏  ›  技术社区  ›  James

使用linqtoxml遍历HTML表

  •  1
  • James  · 技术社区  · 14 年前

    <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以外的工具来实现这个吗?

    编辑

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

    /html/body/form/div[3]/table/tbody/tr[5]/td/table
    
    3 回复  |  直到 9 年前
        1
  •  5
  •   Jimmy Hoffa    14 年前
    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..
        }
    }
    
        2
  •  1
  •   SLaks    14 年前

    一旦你和 <table> Elements() .

        3
  •  0
  •   John Nicholas    14 年前

    linq就像sql,它执行基于集合的操作。

    您希望将重点放在使用foreach循环来迭代选定的像素集上-