【问题标题】:AngleSharp result the html encodedAngleSharp 结果的 html 编码
【发布时间】:2018-10-26 10:12:46
【问题描述】:

我正在使用 AngleSharp,当我解析 html 输入时,我从外部 html 中得到了这样的结果:

<p><textarea>one&lt;p&gt;two</textarea></p>

这是我的代码:

string input = "<body><p><textarea>one<p>two";
var parser = new HtmlParser();
var document = parser.Parse(input);
var htmlOutput = document.Body.OuterHtml;

我希望结果是:

<p><textarea>one</textarea></p><p>two</p>

谁能帮帮我!!

【问题讨论】:

    标签: anglesharp


    【解决方案1】:

    这是官方 HTML 规范中定义的标准行为。 textarea 标记切换到新的解析状态并且不会自动关闭。它需要遇到textarea 结束标记才能被关闭。这种新的解析状态基本上会忽略所有保留字符(例如,&lt;),这会导致您看到的序列化表示使用它们的编码值。

    所以问题不在于编码(这只是一个序列化表示),而在于 textarea 没有关闭,它现在会将所有(假设?)子项作为原始输入放置在 textarea 中。

    很遗憾,您在这里无能为力 - 您需要关闭 textarea。所有浏览器(因此规范的初始注释)都以相同的方式看待它 - 所以这不是 AngleSharp 独有的。

    HTH!

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 1970-01-01
      • 2011-06-16
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 2010-09-27
      • 2017-05-18
      相关资源
      最近更新 更多