Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let findTemplatesFile (file : string) =
- let doc = SchemeOFTD(XDocument.Load(file))
- //doc.preprocess()
- let elements =
- doc.xd.Element(nsoftd + "Документ").Element(nsoftd + "Лист").Elements()
- |> Seq.filter
- (fun xe ->
- xe.Name.NamespaceName = nsOftdElement.NamespaceName
- || xe.Name.NamespaceName = nsbsloftd.NamespaceName)
- let svgGroups =
- doc.xd.Element(nsoftd + "Документ").Element(nsoftd + "Лист").Elements()
- |> Seq.tryFind (fun xe -> xe.Name.LocalName = "svg")
- |> (fun xe ->
- match xe with
- | None -> Seq.empty
- | Some(xe) ->
- match xe.Element(nssvg + "svg").Element(nssvg + "g") with
- | null -> Seq.empty
- | a -> a.Elements())
- |> Seq.toList
- let templates =
- elements
- |> Seq.choose
- (fun e ->
- let idSvg = e.Attribute(xn "svg-id").Value
- match svgGroups
- |> List.tryFind (fun a -> a.Attribute(xn "id").Value = idSvg) with
- | Some(a) -> Some(e, a)
- | None -> None)
- |> Seq.map
- (fun (el, svgGroup) ->
- Template.TransformTemplate(Template.Template.fromOftd(doc, el, svgGroup)))
- |> (fun ts ->
- Template.TemplateAcc(doc, Seq.toList(ts)))
- templates
- let findTemplatesDirectory directory =
- let templates =
- Directory.GetFiles(directory) |> Seq.map (fun f -> findTemplatesFile f)
- templates
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement