#c# #anglesharp
#c# #anglesharp
Вопрос:
Есть ли способ создать элементы DOM с использованием string в AngleSharp? Например:
var result = document.Create...("<div id='div1'>hi<p>world</p></div>");
Ответ №1:
Это возможно с использованием фрагмента документа.
Существует множество возможностей использования фрагмента документа, одним из способов было бы использовать синтаксический анализ фрагмента для создания списка узлов в правильном контексте:
var context = BrowsingContext.New(Configuration.Default);
var document = await context.OpenAsync(r => r.Content("<div id=app><div>Some already available content...</div></div>"));
var app = document.QuerySelector("#app");
var parser = context.GetService<IHtmlParser>();
var nodes = parser.ParseFragment("<div id='div1'>hi<p>world</p></div>", app);
app.Append(nodes.ToArray());
В примере показано, как узлы могут быть созданы в контексте определенного элемента (в данном случае #app) и что поведение отличается от, например, использования InnerHtml
, которое удалит существующие узлы.
Надеюсь, это поможет!