如何借助 html 敏捷包从 html 文件中提取最里面的表格?
我正在 html 敏捷包的帮助下解析 html 文件中的表格信息。
现在我可以做到并且有效。
但是当我想要提取的表是最里面的时候。
或者我不知道它在嵌套表中的哪个位置。并且可以有任意数量的嵌套表,我想从中提取具有列名名称、地址的表的信息。
前任。
<table>
<table>
<tr><td>PHONE NO.</td><td>OTHER INFO.</td></tr>
<tr><td>
<table>
<tr><td>AMOUNT</td></tr>
<tr><td>50000</td></tr>
<tr><td>80000</td></tr>
</table>
</td></tr>
<tr><td>
<table>
<tr><td>
<table>
<tr><td>
<table>
<tr><td> NAME </td><td>ADDRESS</td>
<tr><td> ABC </td><td> kfks </td>
<tr><td> BCD </td><td> fdsa </td>
</table>
</tr></td>
</table>
</td></tr>
</table>
</td></tr>
</table>
有很多表,但我想提取具有列名 name、address 的表。 那我该怎么办呢?
I am parsing the tabular information from the html file with the help of the html agility pack.
Now I can do it and it works.
But when the table what I want to extract is inner most.
Or I don't know at which position it is in nested tables.And there can be any number of nested tables and from that I want to extract the information of the table which has column name name,address.
Ex.
<table>
<table>
<tr><td>PHONE NO.</td><td>OTHER INFO.</td></tr>
<tr><td>
<table>
<tr><td>AMOUNT</td></tr>
<tr><td>50000</td></tr>
<tr><td>80000</td></tr>
</table>
</td></tr>
<tr><td>
<table>
<tr><td>
<table>
<tr><td>
<table>
<tr><td> NAME </td><td>ADDRESS</td>
<tr><td> ABC </td><td> kfks </td>
<tr><td> BCD </td><td> fdsa </td>
</table>
</tr></td>
</table>
</td></tr>
</table>
</td></tr>
</table>
There are many tables but I want to extract the table which has column name name,address.
So what should I do ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将文档加载为 HtmlDocument。然后使用 XPath 查询查找不包含其他表且第一行中包含“Name”的 td 的表。
XPath 实现是来自
System.Xml.XPath
的标准 .NET 实现,因此任何有关将 XPath 与 XmlDocument 结合使用的文档都适用。如果“名称”列已修复,您可以使用类似
'Name' = normalize-space(tr[1]/td[2])
的内容。根据多个列名查找表,但不是最里面的表条件。
Load the document as a HtmlDocument. Then use an XPath query to find a table that contains no other tables and which has a td in the first row containing "Name".
The XPath implementation is the standard .NET one from
System.Xml.XPath
, so any documentation about using XPath with XmlDocument will be applicable.If the "Name" column was fixed, you could use something like
'Name' = normalize-space(tr[1]/td[2])
.To find a table based on several column names, but not the inner most table condition.