【问题标题】:What is the appropriate way to embed potentially non-well-formed html in an xml document?在 xml 文档中嵌入可能格式不正确的 html 的适当方法是什么?
【发布时间】:2008-12-29 16:44:09
【问题描述】:

营销人员希望能够在(基于 xml 的)CMS 中编写直接内联 HTML。 xhtml 合规性等可能会付诸东流,但他们是老板。 CMS 使用常规的 xml/xslt 转换管道。目前我们只使用一个 单个节点,其中包含所有讨厌的 cdata 节点,使用一些讨厌的连接创建。

还有其他方法吗?

编辑:我或许能够说服他们 HTML 应该是某种格式良好的 HTML 片段,但我无法在已知的世界中让他们同意 xhtml/严格合规性,例如其余的东西实际上。但据我了解,格式良好对我没有任何帮助?

【问题讨论】:

  • XML 意义上的格式良好可能会有所帮助,因为您可以使用 xsl 管道将其转换为 xhtml。但这是一个悲伤的秘诀,因为用户永远不会遵守。正如建议的那样,HTML Tidy 或类似的方法是要走的路。
  • @Alohci 是的,我知道他们永远不会遵守。这就是为什么他们首先拉排名。不错的评论;)

标签: xml xslt content-management-system


【解决方案1】:

CDATA 是这样做的唯一方法,根本不可能无效标记将进入任何已解析结构的 XML 文档中。

我可以建议一个替代解决方案吗?修复问题标记,因为它被插入到 XML 中 - 绝对不是微不足道的,但坦率地说,他们给你的任务是荒谬的。

查看HTML TidyBeautiful Soup,它们可以获取标签汤并将其转化为有效、格式良好的 xhml。

【讨论】:

    【解决方案2】:

    除了使用 CDATA 部分之外,一种解决方案是对营销人员编写的所有小于号和 & 号进行编码,并在显示之前对其进行解码。

    但是,我确实认为涉及 HTML Tidy 之类的解决方案可能是最佳的。

    【讨论】:

      【解决方案3】:

      我很确定您可以过滤营销人员通过 XHTML 转换器输入的 HTML。

      SgmlReader

      【讨论】:

        【解决方案4】:

        您可以通过使用 CDATA 部分或通过显式转义相关字符(这两个选项实际上是等效的)来嵌入它们的所有讨厌的东西。如前所述,有一些工具(例如 Tidy)会有所帮助,当然,一旦您获得了格式良好的文档,您可以使用 XSLT 将其转换为不那么令人不快的东西(当然,取决于 CMS您正在使用)。

        说了这么多,我建议现在是讨论谁是哪些领域的“老板”的时候了。如果您开始在讨论品牌或其他任何事情时推翻他们,营销人员不会接受太多。你有你的专业领域,他们有他们的,他们的绝对不是 HTML。现在就打这场仗,否则你将在未来面临一个痛苦的世界。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-25
          • 1970-01-01
          • 2023-03-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多