3

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

还有其他方法吗?

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

4

4 回答 4

4

CDATA 是执行此操作的唯一方法,无效标记根本不可能以任何已解析的结构进入 XML 文档。

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

查看HTML TidyBeautiful Soup,它们可以使用标签汤并将其转换为有效的、格式良好的 xml。

于 2008-12-29T17:05:48.717 回答
2

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

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

于 2008-12-29T17:20:56.470 回答
1

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

比如SgmlReader

于 2008-12-29T19:02:14.317 回答
0

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

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

于 2009-01-01T18:53:11.680 回答