简体   繁体   English

在 AngleSharp 中,如何使用字符串创建 DOM 元素?

[英]In AngleSharp, how can I create DOM elements using string?

Is there a way to create DOM elements using string in AngleSharp?有没有办法在AngleSharp中使用字符串创建DOM元素? For example:例如:

var result = document.Create...("<div id='div1'>hi<p>world</p></div>");

This is possible using a document fragment.这可以使用文档片段来实现。

There are multiple possibilities how to use a document fragment, one way would be to use fragment parsing for generating a node list in the right context:如何使用文档片段有多种可能性,一种方法是使用片段解析在正确的上下文中生成节点列表:

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());

The example shows how nodes can be created in the context of a certain element (#app in this case) and that the behavior is different than, eg, using InnerHtml , which would remove existing nodes.该示例显示了如何在特定元素(在本例中为 #app)的上下文中创建节点,并且该行为与例如使用InnerHtml ,后者会删除现有节点。

Hope this helps!希望这可以帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM