【问题标题】:HTML Agility Pack isn't correcting paragraph elements properlyHTML Agility Pack 未正确更正段落元素
【发布时间】:2017-06-19 16:02:14
【问题描述】:

我遇到了一些结构如下的 html 文件的问题:

<p>
    ...
<p>

显然写这个的人犯了一个语法错误,实际上是想写这个:

<p>
    ...
</p>

有人告诉我 HTML Agility Pack 会在加载时自动修复此问题,但这里似乎并非如此。我也尝试添加

HtmlNode.ElementsFlags["p"] = HtmlElementFlag.Closed;

但这只是给了我以下结果:

<p></p>
    ...
<p></p>

这并没有真正做到我想要的。 HTML Agility Pack 中是否存在某种方法可以在打开新标签之前自动关闭所有 p 标签?

编辑:对于我正在做的工作,p 标签永远不会被嵌套。

【问题讨论】:

  • '在打开一个新标签之前关闭所有 p 标签' 所以你说你不能嵌套一个段落标签,这没有意义 &lt;p&gt;&lt;span&gt;My Title&lt;/span&gt;&lt;p&gt;Why should this be illegal&lt;/p&gt;&lt;/p&gt; 你最好有它自动关闭标签,但不会修复文件
  • @johnny5 我正在使用的特定 html 不会嵌套段落标签。您能否详细说明“让它自动关闭标签”是什么意思?谢谢!
  • 特定的 HTML 没有,但 HTML 敏捷包不能假设,我不确定您将如何指定告诉 HTML 敏捷包更改其默认行为,也许它具有可覆盖的访问者模式

标签: c# html html-parsing html-agility-pack


【解决方案1】:

标签p 有一些行为可能会导致一些类似的问题。

从 v1.5.0-beta3 开始,您可以使用属性 DisableBehavaiorTagP 禁用标签 P 的默认行为

查看发布说明:https://github.com/zzzprojects/html-agility-pack/releases/tag/v1.5.0-beta3

【讨论】:

    猜你喜欢
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    相关资源
    最近更新 更多