using HtmlAgilityPack; using System; using System.Collections.Generic; using System.Linq; using System.Reflection.Metadata; using System.Text; using System.Text.Json.Serialization; using System.Threading.Tasks; namespace Beam.Dynamic { [JsonDerivedType(typeof(Binding), "binding")] public interface IBinding { string? XPath { get; set; } string? CssPath { get; set; } HtmlNode? Select(HtmlDocument doc) { if (XPath is not null) return doc.DocumentNode.SelectSingleNode(XPath); if (CssPath is not null) return doc.DocumentNode.ThenByClasses(CssPath.Split('/')); return null; } } }