open AstAccess.AstImport open HtmlStruct.Content open System.Xml open HtmlStruct.Assemble open HtmlStruct.Content open HtmlStruct.Present let doc = XmlDocument() doc.Load("E:/storyline.xast") let prog = Program.GenerateFrom(doc) let entry = AstVisitEntry(prog) let visitor = UnitGenerate(prog) entry.visitWith(visitor) |> ignore let volume_pages = volume_page_assemble(visitor.contents()) |> List.map (fun x->x) let story_pages = story_page_assemble(visitor.contents()) |> List.map (fun x->x) let point_pages = point_page_assemble(volume_pages @ story_pages) volume_pages @ story_pages @ point_pages |> List.iter (fun it -> (it:?>PageAccess).setPageRoot("E:")) let maker = volume_pages @ story_pages @ point_pages |> List.map(fun page_unit -> match page_unit with | :? PointPage as point -> PageMaker(point) :> PageText | :? VolumePage as vol -> PageMaker(vol) | :? StoryPage as story -> PageMaker(story) | _ -> failwith "" ) let docx0 = maker.Item(5).getHtmlText() let docx1 = maker.Item(18).getHtmlText() let docx2 = maker.Item(22).getHtmlText() for refs in point_pages do System.Console.WriteLine(refs.ToString())