在一个foreach循环中的DOM InsertBefore

时间:2016-12-20 15:46:23

标签: c# html dom

我正在使用AngleSharp来解析HTML。 现在我想在每张图片之前插入John Smith Kent Smith Adam Smith Nicole Smith Jack Smith Connor Smith Kat Smith Greg Smith Bill Smith 。 所以我做了以下几点:

<BR>

应该看起来像

var xx = document2.GetElementsByTagName("img");                
var document3 = parser.Parse(BodyCode);
var br = document3.CreateElement("BR");
foreach (var pic in xx)
   {
     document3.Body.AppendChild(pic);
     document3.Body.InsertBefore(br, pic);
   }

但实际上它看起来像

<br><img></img><br><img></img><br><img></img>

如果我调试此循环,我可以看到 br 是在每个 img 之前创建的,但不是永久性的。

<img></img><img></img><br><img></img>

我的错误在哪里? THX

1 个答案:

答案 0 :(得分:0)

您只需创建一个换行符,并在每次循环迭代时移动它。为每个插入创建一个新的。

foreach (var pic in xx)
{
     var br = document3.CreateElement("BR");
     document3.Body.AppendChild(pic);
     document3.Body.InsertBefore(br, pic);
}