从XML文件读取值引发错误 - FAKE F#MAKE

时间:2017-03-21 04:27:01

标签: f# f#-interactive f#-3.0 f#-data f#-fake

我正在尝试从FAKE读取XML文件中的值,但是我收到了一个错误,即

.fsx(9,16) : eror FS000: Incomplete structurd construct at or before this
 point in expression. Expected '->' or other token.

以下是我的代码,我使用XMLHelper.XMLRead从xml文件中读取值。

#r "./packages/FAKE/tools/FakeLib.dll"
open Fake
open Fake.XMLHelper
Target "BuildMain" (fun _ ->
    for s in XMLHelper.XMLRead true "D:/test/Version.Config" "/version/major/minor"
        trace s)
"BuildMain"
RunTargetOrDefault "BuildMain"

下面是我的XML文件:

<version>
  <major number="2">
    <minor>1</minor>
    <build>1</build>
    <revised>1</revised>
  </major>
</version>

这里我试图从次要版本读取值,而且我可以将此值存储在变量中以便以后可以使用它吗?

1 个答案:

答案 0 :(得分:1)

for ... in构造在身体前需要do或箭头->

for s in XMLHelper.XMLRead true "D:/test/Version.Config" "/version/major/minor" do
    trace s

如果正文是另一个循环或只是副作用代码,则使用do,如:

for x in 1..5 do
   printfn "%d" x

使用箭头->让身体产生一个值,然后该值成为结果列表或序列的一部分,如:

let evenNumbers2to10 = [for x in 1..5 -> x*2]

可以将箭头->视为do yield的快捷方式:

let evenNumbers2to10 = [for x in 1..5 do yield x*2]