Как использовать HtmlDocument's TryGetHtml - PullRequest
0 голосов
/ 24 сентября 2018

Скажем, у меня есть функция

let GetDataFromWebsite (url:string) =
    let webpage = HtmlDocument.Load(url)
    let html = webpage.TryGetHtml
    html

(обратите внимание, что эта функция станет более длинной, когда я пойму, как использовать функцию TryGetHtml)

Это говорит мне, что онаимеет возврат string -> unit -> HtmlNode option.Что это точно возвращает и как мне его использовать?Я пробовал

match GetDataFromWebsite(@"...") with
| None -> "None"
| _ -> (fun a -> a.ToString())
|> printfn "%s"

, но Visual Studio заявляет, что:

This expresion was expected to have type
  'unit -> FSharp.Data.HtmlNode option'
but here has type
  ''a option'

1 Ответ

0 голосов
/ 24 сентября 2018

Почти там :)

TryGetHtml - это функция, а не свойство, и вы, скорее всего, захотите оценить ее вместо назначения:

let GetDataFromWebsite (url:string) =
    let webpage = HtmlDocument.Load(url)
    let html = webpage.TryGetHtml() // note braces
    html

Сейчасон возвращает HtmlNode option, с которым можно сопоставить шаблон:

match GetDataFromWebsite(@"...") with
| None -> "None"
| Some x -> x.ToString()
|> printfn "%s"

Это должно скомпилироваться без ошибок.

...