我可以找到HtmlProvider
的特定行。
是否可以从HtmlProvider.Tables.Row
获取另一个HTML信息?
type Provider = HtmlProvider<"
<table><tbody>
<tr><td class=\"orange\" >something2</td><td>20.1</td></tr>
<tr><td class=\"grean\" >something</td><td>23.5</td></tr>
<tr><td class=\"orange\" >something3</td><td>20.0</td></tr>
</tbody></table>">// backslashes are for escaping
let wantedRow = Provider.GetSample().Tables.Table1.Rows
|> Seq.filter (fun c->if float (c.Column2)=20.0 then true else false)
|> Seq.head
现在我有wantedRow
并且可以提取something3
字符串。
但我需要获得该行的class
(orange
)。
用伪代码编写的内容(GetHtml
是伪...):
(*Pseudo code warning *)
let tdTag= wantedRow.GetHtml.Descendants["td"] |>Seq.head
let classStr = tdOfWantedRow.AttributeValue ("class") //orange
是否可以轻松获取此类信息HtmlProvider
?
答案 0 :(得分:3)
Tables
的{{1}}功能将表视为数据,丢弃html属性。要获得HTML本身,您可以将其视为HTML文档:
HtmlProvider
(当然,在现实世界的例子中,如果节点不存在或者浮点数不能解析,你会想要一些保护措施,但这应该让你朝着正确的方向前进)