Это моя первая попытка F #, я знаю, что мне все еще нужно много читать, и я это сделаю, но эти проблемы помогут мне понять следующие части, которые я буду читать лучше, до сих пор мне удалось решить некоторые из первых проблем, поэтому, пожалуйста, будьте терпеливы ......Использование F # как мне получить доступ к элементу, который не имеет того же пространства имен, что и документ?
документ XML выглядит следующим образом:
<BuildCollection xmlns="http://schemas.datacontract.org/2004/07/BuildModels" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
...
<PostEvents xmlns:a="http://schemas.datacontract.org/2004/07/BuildModels.Events">
<a:EventBase i:type="a:ExternalProcess">
<a:Description>Structuring assemblies</a:Description>
Как получить доступ к элементам, которые начинаются с «а: .......»?
В C# я бы сделал это так:
foreach (var postBuildEventElement in
document
.Root.Element(ns + "PostEvents")
.Elements()
.Where(_ => _.Name.LocalName == "EventBase"))
До сих пор в F # У меня есть это:
module PostBuildInstructions
open System.Xml.Linq
open System.Linq
let xn s = XName.Get(s)
let PostBuildInstructions (xdoc: System.Xml.Linq.XDocument) =
xdoc.Root.Elements(xn "PostEvents").Elements().Where(e => e.)
let ExecutePostBuildInstructions buildDescriptor =
let "I need to enumerate the post build events here"
В "основной" блока кода я начал с этим: (I» м упором на линии 6 с этим вопросом)
open Log
[<EntryPoint>]
let main argv =
TryLogArgs argv
ReadPostBuildInstructions |> ExecutePostBuildInstructions
log "Press enter to exit"
System.Console.ReadLine() |> ignore
0 // return an integer exit code
Лямбда-выражения в F # написаны как 'fun x -> ...' Вы пробовали искать? –
Я не спрашиваю о ламдах. Да, я искал свой вопрос, но не ламды, так как это не вопрос. –
В коде F # у вас есть '.Where (e => e.)'. Это не так, как лямбда-выражения написаны в F #. –