营销人员希望能够在(基于xml的)CMS中编写直接内联HTML。 xhtml合规性等可能会耗尽,但他们是老板。 CMS使用常规的xml / xslt转换管道。目前我们只使用一个 包含所有恶意的cdata节点的单个节点,使用一些讨厌的连接创建。
还有其他方法吗?
编辑:我或许可以说服他们HTML应该是某种格式良好的 HTML片段,但我不能在已知的世界中让他们同意xhtml /严格遵守其余的东西实际上是。但据我所知,良好的形式对我没有任何帮助?
答案 0 :(得分:4)
CDATA是唯一的方式,在任何已解析的结构中,无法将XML文档放入无效标记。
我可以建议一个替代解决方案吗?修复问题标记,因为它插入到XML中 - 绝对不是微不足道的,但坦率地说,他们给你的任务是荒谬的。
查看可以带标签汤的HTML Tidy或Beautiful Soup并将其转换为有效的格式良好的xhml。
答案 1 :(得分:2)
除了使用CDATA部分之外的一个解决方案是对营销人员编写的所有较少数量和符号进行编码,并在显示之前对其进行解码。
但是,我确实认为像HTML Tidy这样的解决方案可能是最佳的。
答案 2 :(得分:1)
我很确定您可以过滤营销人员通过XHTML转换器输入的HTML。
例如SgmlReader。
答案 3 :(得分:0)
您可以通过使用CDATA部分或通过显式转义相关字符来嵌入所有的肮脏(这两个选项实际上是等效的)。正如已经指出的那样,有一些工具如Tidy会有所帮助,当然,一旦你有一个结构良好的文档,你可以用XSLT将它转换成不那么令人不愉快的东西(当然,取决于CMS)您正在使用)。
说了这么多,我建议现在是时候讨论谁是哪个领域的“老板”了。如果你在讨论品牌或其他什么时开始推翻它们,那么营销人员就不会好好理解。你有自己的专业领域,他们有自己的专业知识,而他们的专业知识肯定不是HTML。现在打这场斗争,否则你将来会面临痛苦的世界。