缺少预期的重叠标签
Expected overlapping tags are missing
我正在使用 Html Agility Pack 来解析一些 HTML,它们可以有重叠的标签。
这是一个简单的方法:
public string Parse(string html)
{
var doc = new HtmlDocument();
doc.LoadHtml(html);
var sb = new StringBuilder();
using (var sw = new StringWriter(sb))
doc.Save(sw);
return sb.ToString();
}
input = "<b>bold <i>bold italic</b> italic</i>";
expected = "<b>bold <i>bold italic</i></b><i> italic</i>";
actual = "<b>bold <i>bold italic</i></b> italic";
TagNotOpened
解析器错误也在 </i>
上输出。
我尝试过使用 OptionOutputAsXml
以及将输入放入各种其他标签中,但没有任何效果。
我的预期结果是单词 "italic" 应该是斜体,但标签不应重叠 - 它应该在 </b>
之前关闭并在之后重新打开。有什么方法可以通过 HAP 或类似的库获得我预期的结果吗?
AngleSharp达到预期效果,目前还在积极维护中
如果 Html Agility Pack 无法实现,我会将其标记为答案。
我正在使用 Html Agility Pack 来解析一些 HTML,它们可以有重叠的标签。
这是一个简单的方法:
public string Parse(string html)
{
var doc = new HtmlDocument();
doc.LoadHtml(html);
var sb = new StringBuilder();
using (var sw = new StringWriter(sb))
doc.Save(sw);
return sb.ToString();
}
input = "<b>bold <i>bold italic</b> italic</i>";
expected = "<b>bold <i>bold italic</i></b><i> italic</i>";
actual = "<b>bold <i>bold italic</i></b> italic";
TagNotOpened
解析器错误也在 </i>
上输出。
我尝试过使用 OptionOutputAsXml
以及将输入放入各种其他标签中,但没有任何效果。
我的预期结果是单词 "italic" 应该是斜体,但标签不应重叠 - 它应该在 </b>
之前关闭并在之后重新打开。有什么方法可以通过 HAP 或类似的库获得我预期的结果吗?
AngleSharp达到预期效果,目前还在积极维护中
如果 Html Agility Pack 无法实现,我会将其标记为答案。