Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Yukitoshi Suzuki
    @yukitos
    Http.RequestString ( url )の戻り値にはちゃんとデータが入っているんです?
    callmekohei
    @callmekohei
    文字列としてばっちり取得できてます(^_^)
        let url =  "http://rss.weather.yahoo.co.jp/rss/days/8210.xml"
        Http.RequestString ( url )  |> printfn "%A"
    //一部のみここでは表示。。。
    "<?xml version="1.0" encoding="utf-8"?>
    <rss version="2.0"><channel><title>Yahoo!天気・災害 - 福岡(福岡)の天気</title><link>htt
    bleis-tift
    @bleis-tift
    それはXmlDocumentがそのように出しているだけですね
    OuterXmlすればちゃんと読み込めていることがわかるはずです
    まぁ、XmlDocumentじゃなくてXDocument使ったほうがいい、とかそういう話はあります
    Yukitoshi Suzuki
    @yukitos
    "%A"はそれほどには万能じゃないということですね;)
    bleis-tift
    @bleis-tift
    ですね。ちなみに、XDocumentであれば%Aでいい感じに表示されます。
    omanuke
    @omanuke
    F#の型じゃない奴はToStringの内容とか出してるんでしたっけ?
    bleis-tift
    @bleis-tift
    ToStringとも違うものが出てるっぽいんですよねー
    DebuggerDisplayとか見てるんだろうか
    callmekohei
    @callmekohei
    This message was deleted
    Kouji Matsui
    @kekyo
    別解してみた:
    open System.Net.Http
    open System.Xml.Linq
    
    let asyncFetch (url: string) = async {
        use httpClient = new HttpClient()
        use! stream = httpClient.GetStreamAsync url |> Async.AwaitTask
        return XDocument.Load(stream)
      }
    
    [<EntryPoint>]
    let main argv = 
        let doc = asyncFetch "http://rss.weather.yahoo.co.jp/rss/days/8210.xml" |> Async.RunSynchronously
        printfn "%A" doc
        0
    %Aはここらへんかな
    うっわ、この読む気なくす実装・・・
    omanuke
    @omanuke
    いろいろやってくれるのはわかったのでもうおなかいっぱいです(´・ω・`)
    Kouji Matsui
    @kekyo
    富豪的機能
    ある意味シリアル化
    bleis-tift
    @bleis-tift
    XmlDocumentの親クラスであるXmlNodeIEnumerableなので、https://github.com/Microsoft/visualfsharp/blob/95fb299ab8588b112246f986148de9da8dbc9a4b/src/utils/sformat.fs#L1094 に入っていくっぽいですね
    ここでseqって文字列が付くようです
    ふむ、boundedUnfoldLseqの項目も文字列化するみたいですね。その時にobjLを使うので、再帰的になっているわけだ
    callmekohei
    @callmekohei
    XDocument.Loadって文字列じゃなくてファイルしか読まない???エラーになってしまいます。。。(^_^;;
    #r @"../lib/FSharp.Data.dll"
    #r @"../../System.Xml.Linq.dll"
    open FSharp.Data
    open System.Xml.Linq
    
    module Test_XML =
    
        let url =  "http://rss.weather.yahoo.co.jp/rss/days/8210.xml"
        let xDoc = System.Xml.Linq.XDocument.Load ( Http.RequestString ( url ) ) // ここでエラー
        (* xDoc |> printfn "%A" *)
    bleis-tift
    @bleis-tift
    Parseを使いましょう
    callmekohei
    @callmekohei
    で、で、できました〜〜〜〜。すごく嬉しいです〜〜〜〜。ありがとうございます!!!!!!皆様!
    bleis-tift
    @bleis-tift
    イテレーターから取得した要素をitemLにかけるんだけど、これがなぜ表示されないんだ・・・?
    あー、Nodeの末端に何がいるか、か
    bleis-tift
    @bleis-tift
    なるほどなるほど、XmlElementまでたどり着くけど、こいつもIEnumerableだけど末端だからそれ以降進まなくなるのね
    で、結局構造を写し取っただけの空のseqのネストが出力される、と
    結論:DebuggerDislpayは見ていない。%Aの内部でSystem.Collections.IEnumerableに対する特別処理が入っていて、そこで列挙されて文字列化される。
    もう一つ結論:XmlDocumentは捨てよう
    Yukitoshi Suzuki
    @yukitos
    +1 to discard XmlDocument :)
    callmekohei
    @callmekohei
    +1 to discard XmlDocument :)
    Yukitoshi Suzuki
    @yukitos
    この間F#談話室に来ていたフランスの人?からTwitterで質問があって、
    Mac上のXamarinでパッケージのインストールにこけるらしいんですが何かご存じのかたいませんかしら
    im a noobie.im sure the answer is simple. but i don't understand how to install a package on a F# solution. specifically i had an error while installing the package spreads (which i talked about few days ago)
     and when im navigating in a solution, i see the button for upgrading package for example but the button for installing package is greyed and not accessible
    bleis-tift
    @bleis-tift
    Mac・・・
    Kouji Matsui
    @kekyo
    Xamarin...
    pocketberserker
    @pocketberserker
    おうちに かえらないと かんきょうが ない
    Yukitoshi Suzuki
    @yukitos
    僕も環境持ってないのでなんともかんとも。
    omanuke
    @omanuke
    packageってNuget?
    adacola
    @adacola
    かいしゃに いかないと かんきょうが ない
    Yukitoshi Suzuki
    @yukitos
    Nugetなんですかね?F#ソリューションでパッケージをインストールしようとしたっていうことしか聞いてないんですけども。
    Spreadsというパッケージらしいです
    omanuke
    @omanuke
    んー、on a F# solutionいうからNugetでXamarinStudioでNugetパッケージのインスコどすんのって話にも読めるが…Mac使ってるけどXamarinStudioよーしらんす
    Yukitoshi Suzuki
    @yukitos
    なるほどどうもです。@all
    callmekohei
    @callmekohei

    < <titel> ... </title> に挟まれた文字列を取り出す方法について>

    本当に度々すみません。先ほどの件、9割できました!ありがとうございます。そこでタグに囲まれた文字列のみ取り出したいのですが、、、、。なにかいい方法ありますでしょうか?お知恵を拝借できれば嬉しいです!

    #r @"../lib/FSharp.Data.dll"
    #r @"../../System.Xml.Linq.dll"
    open FSharp.Data
    open System.Xml.Linq
    
    module Test_XML =
    
        let url =  "http://rss.weather.yahoo.co.jp/rss/days/8210.xml"
    
        let xname s = XName.Get s
        let xd = System.Xml.Linq.XDocument.Parse ( Http.RequestString ( url ) )
    
        ( xd.Descendants <| xname "title" ) 
        |> List.ofSeq
        |> printfn "%A"

    結果

    [<title>Yahoo!天気・災害 - 福岡(福岡)の天気</title>;
     <title>【 29日(火) 福岡(福岡) 】 晴後曇 - 18℃/8℃ - Yahoo!天気・災害</title>;
     <title>【 30日(水) 福岡(福岡) 】 晴時々曇 - 21℃/12℃ - Yahoo!天気・災害</title>;
     <title>【 31日(木) 福岡(福岡) 】 曇後雨 - 19℃/11℃ - Yahoo!天気・災害</title>;
     <title>【 1日(金) 福岡(福岡) 】 曇時々雨 - 20℃/11℃ - Yahoo!天気・災害</title>;
     <title>【 2日(土) 福岡(福岡) 】 晴時々曇 - 23℃/11℃ - Yahoo!天気・災害</title>;
     <title>【 3日(日) 福岡(福岡) 】 曇時々雨 - 23℃/12℃ - Yahoo!天気・災害</title>;
     <title>【 4日(月) 福岡(福岡) 】 曇時々雨 - 18℃/11℃ - Yahoo!天気・災害</title>;
     <title>【 5日(火) 福岡(福岡) 】 曇時々晴 - 20℃/9℃ - Yahoo!天気・災害</title>;
     <title>【 福岡地方 】注意報があります - Yahoo!天気・災害</title>]
    bleis-tift
    @bleis-tift
    mapしてValueだかなんだかに変換すればいいのでは?
    あと、個人的には順次パイプラインの右側に置くのは、ofXxxじゃなくてtoXxxの方が好みです
    (* こっち側はseq *) |> Seq.toList |> (* こっち側はlist *)
    こんな風に、型とモジュール名、関数名と型名が一致するので
    Yukitoshi Suzuki
    @yukitos
    XElementの使い方は最初よく分からないですよねえ。そのあたりから調べるのが吉です。
    callmekohei
    @callmekohei
    ブレイスさん!ユキトスさん!ありがとうございます!できましたっ!超感動です!
    #r @"../../System.Xml.Linq.dll"
    open FSharp.Data
    open System.Xml.Linq
    
    module Test_XML =
    
        let url =  "http://rss.weather.yahoo.co.jp/rss/days/8210.xml"
    
        let xname s = XName.Get s
        let xd = System.Xml.Linq.XDocument.Parse ( Http.RequestString ( url ) )
    
        ( xd.Descendants <| xname "title" )
        |> Seq.map (fun xe -> xe.Value ) 
        |> Seq.toList
        |> printfn "%A"
    ["Yahoo!天気・災害 - 福岡(福岡)の天気"; "【 29日(火) 福岡(福岡) 】 晴後曇 - 18℃/8℃ - Yahoo!天気・災害";
     "【 30日(水) 福岡(福岡) 】 晴時々曇 - 21℃/12℃ - Yahoo!天気・災害";
     "【 31日(木) 福岡(福岡) 】 曇後雨 - 19℃/11℃ - Yahoo!天気・災害";
     "【 1日(金) 福岡(福岡) 】 曇時々雨 - 20℃/11℃ - Yahoo!天気・災害";
     "【 2日(土) 福岡(福岡) 】 晴時々曇 - 23℃/11℃ - Yahoo!天気・災害";
     "【 3日(日) 福岡(福岡) 】 曇時々雨 - 23℃/12℃ - Yahoo!天気・災害";
     "【 4日(月) 福岡(福岡) 】 曇時々雨 - 18℃/11℃ - Yahoo!天気・災害";
     "【 5日(火) 福岡(福岡) 】 曇時々晴 - 20℃/9℃ - Yahoo!天気・災害";
     "【 福岡地方 】注意報があります - Yahoo!天気・災害"]