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;
}
}
}