阻止 HtmlAgilityPack 自动添加未关闭的标记

Prevent HtmlAgilityPack from automatically adding unclosed tags

提问人:manoj soma 提问时间:4/3/2020 最后编辑:manoj soma 更新时间:4/3/2020 访问量:256

问:

目标:删除内联样式,并在 MVC 的 Razor html 中使用 Html-Agility-Pack 添加类。

自从尝试找出使用 Html-Agility-Pack 解析 Razor html 的解决方案以来,已经过去了 2 天 我确实知道 Html-Agility-Pack 不适合解析剃须刀。我知道通过应用逻辑,我们可以建立这个东西,需要你的帮助。

问题:Html-Agility-Pack在遇到未关闭的标签时,会尝试在HTML结构中自动添加标签,我需要实现的是Html-Agility-Pack在解析html后不应该添加任何额外的标签。

以下是我面临的问题,添加了额外的标签。它将 c# 类型视为标记并添加到文档中。

<span>(@((Session["Usernames"] as List<Username>)[0].Name))</span>

<span>(@((Session["Usernames"] as List<Username>)[0].Name))</Username></span>


法典我尝试了下面的代码,但我找不到任何有助于实现这一目标的选项

var document = new HtmlDocument();
document.OptionCheckSyntax = false;
document.OptionWriteEmptyNodes = true;
document.OptionAutoCloseOnEnd = true;
document.LoadHtml(line);


var node = document.DocumentNode.SelectNodes("//*[@style]")[0];
if (node.Attributes["class"] != null)
{
   var NodeClass = node.Attributes["class"].Value;
   node.SetAttributeValue("class", NodeClass + " " + className);
}
else
{
   node.Attributes.Add("class", className);
}
C# Razor HTML 解析 html-agility-pack

评论

0赞 Robert Harvey 4/3/2020
HTML Agility Pack 的目的是从 HTML 中提取数据。你为什么关心它对源 HTML 的标签做了什么?
0赞 manoj soma 4/3/2020
请检查我正在尝试实现的目标,我已经编辑了问题
0赞 Robert Harvey 4/3/2020
好的,同样的问题。你为什么关心 HTML Agility Pack 关闭你的标签?
0赞 manoj soma 4/3/2020
我正在解析一个 html 行,删除样式标签,添加类,用解析的 Html-Agility-Pack DOM 替换我的剃须刀 dom
0赞 Robert Harvey 4/3/2020
是的,我明白你想做什么。我不明白的是你坚持保留未关闭的标签。

答: 暂无答案