【问题标题】:Embedding HTML within XHTML在 XHTML 中嵌入 HTML
【发布时间】:2011-07-15 09:47:13
【问题描述】:

我有一个输出 XHTML(来自 facelet)的 JSF 页面。其中一个字段包含用户生成的 HTML,这导致我的网络浏览器 (Safari) 出现解析错误。

我知道这是因为 XHTML 是严格的并且遵循 XML 的规则,这与 HTML 不同。在避免致命解析错误的同时嵌入此 HTML 的最佳方法是什么?

我想到的一件事是用
替换所有说
的实例,但必须有比这更好的解决方案。

这是我需要嵌入的另一个示例:

这是我的示例文本。
地址是 Wind & Fire。

注意这里的换行标记需要是自封闭的,和号应该是&aamp;

【问题讨论】:

    标签: java html jsf xhtml


    【解决方案1】:

    使用返回格式良好的 HTML 语法的 HTML 解析器。我可以为此推荐Jsoup

    启动示例:

    String userHtml = "foo<br>bar&baz";
    String wellFormedHtml = Jsoup.parse(userHtml).body().html();
    System.out.println(wellFormedHtml); // foo<br />bar&amp;baz
    

    当您即将处理提交的用户输入时,只需应用一次。

    Jsoup 还提供更多优势,例如Whitelist,您可以使用它来去除可能打开 XSS 攻击漏洞的潜在恶意 HTML/JS 代码。

    【讨论】:

    • 我通过 Jsoup 运行了一些 HTML,它解析了问题。感谢您分享您的专业知识!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2014-01-13
    • 2023-04-11
    • 2012-04-30
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多