因此,我可以轻松地使用 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/