Jam*_*mes 1 html c# 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>
Run Code Online (Sandbox Code Playgroud)
基本上,可以有无穷无尽的行数,我希望能够逐行检查数据.谁能指出我正确的方向?我应该使用LINQ以外的工具吗?
编辑:对于混淆感到抱歉,我的问题是我尝试从中收集数据的页面是HTML,而不是XML.确切的扩展名是".aspx.htm".这似乎没有正确加载,即使它确实如此,我不确定如何遍历HTML页面,因为在表之前有一个表我正在尝试从中获取数据.
例如,这是表格中的XPATH,我试图从中获取信息:
/html/body/form/div[3]/table/tbody/tr[5]/td/table
Run Code Online (Sandbox Code Playgroud)
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..
}
}
Run Code Online (Sandbox Code Playgroud)