1
我正在玩Fsharp腳本並試圖找到將數據從XML文件轉換爲CSV文件的方式。在Fsharp中將XML文件轉換爲CSV文件
我開始通過使用typeprovider讀取XML文件,之後我想要的是使用ServiceStack.Text序列化器,但當然數據還沒有準備好,因爲我仍然有一個XmlProvider。
我可能從錯誤的方面來評估問題。任何見解?
我正在玩Fsharp腳本並試圖找到將數據從XML文件轉換爲CSV文件的方式。在Fsharp中將XML文件轉換爲CSV文件
我開始通過使用typeprovider讀取XML文件,之後我想要的是使用ServiceStack.Text序列化器,但當然數據還沒有準備好,因爲我仍然有一個XmlProvider。
我可能從錯誤的方面來評估問題。任何見解?
如果您想要使用XML和CSV類型的提供程序,您可以定義兩種類型 - 一種根據示例表示輸入,一種根據顯式模式表示輸出。
假設test.xml
看起來是這樣的:
<data>
<item foo="1" bar="2" />
<item foo="1" bar="3" />
</data>
然後,您可以定義爲以下類型。對於Output
類型,我們在說什麼是輸出CSV列的名字和類型:
open FSharp.Data
type Input = XmlProvider<"c:/temp/test.xml">
type Output = CsvProvider<"foo (int), bar (int)">
現在,你可以把數據輸入到輸出行,將它們添加到一個新的空CSV文件並保存它使用SaveToString
或使用Save
的文件:
let newRows =
[ for r in Input.GetSample().Items ->
Output.Row(r.Foo, r.Bar) ]
Output.GetSample().Append(newRows).SaveToString()