такой структуры:
                  
                  
                  
                  
                  
                   <objectgroup name="EventsObject">
                  
                  
                    <object id="1" name="start_0" type="Event" x="0.0" y="0" width="16.0" height="304">
                  
                  
                     <properties>
                  
                  
                      <property name="beaconType" value="Start"/>
                  
                  
                      <property name="type" value="Beacon"/>
                  
                  
                     </properties>
                  
                  
                    </object>
                  
                  
                   </objectgroup>
                  
                  
                  
                  
                  
                   Обращаемся к объектам из кода примерно так:
                  
                  
                  
                  
                  
                           let endPositionX =
                  
                  
                              level.Objectgroups
                  
                  
                              |> Array.pick (fun group ->
                  
                  
                                  if group.Name = "EventsObject"
                  
                  
                                  then Some group.Objects
                  
                  
                                  else None)
                  
                  
                              |> Array.pick (fun event ->
                  
                  
                                  event.Name
                  
                  
                                  |> Option.bind (fun name ->
                  
                  
                                      if name.StartsWith("end_0")
                  
                  
                                      then Some (int event.X)
                  
                  
                                      else None
                  
                  
                                  )
                  
                  
                              )
                  
                  
                  
                  
                  
                  Переменная event типа XmlProvider<...>.Object имеет в себе свойства id, name, type, x, y, width и height к которым можно получить доступ через точку. А как получить Value от property name="beacoType" ???
                  
                  
                
Вроде как event.properties |> Seq.find (fun p -> p.name = "beaconType") |> fun p -> p.value
Обсуждают сегодня