上下文:我的
HTML5文档不需要
Javascript,动画,表单……它们只是“内容”.因此,可以对这些表示进行过滤,只需要“完整HTML5表示”的某些子集/约束.表达这种情况(以及其他更广泛的情况!)的好方法是说“我的文档可以用多语言标记约束来表达”.
问题:是否有工具将“任何HTML5”转换(或过滤丢失虚假信息)到Polyglot XHTML5?优选地,基于DOM(或XSLT或XQuery)的扩展的工具.
最佳答案 我不会有完整的解决方案.
在我看来,这种转换有两个甚至三个阶段:
第1阶段:使HTML5格式良好
第一阶段有一种黑色艺术,需要适应HTML 5缺乏结构良好的要求.
你有一个DOM之前需要这个,在你有机会获得期望远程看起来像xml的东西的工具之前.
那么谁实现了这样的转换:(几乎?)每个浏览器.不少有源代码.您也可以从正在运行的浏览器中获取此信息:
检查源代码,看看它与标签汤的作用是什么作为输入,你得到结构良好的源代码.
另一个查找此类源代码的地方是编辑器,允许您在网页中编辑xhtml(FCKeditor等)
例如< p为H.段< UL><李>子弹< / UL>< p为H.第
变为< p> para< / p>< ul>< li> bullet< / li>< / ul>< p> para< / p>
第2阶段:过滤掉Polyglot中不允许的内容
一旦html标签结构良好,下一步就必须删除多语言标记中不允许的内容,因为它与html解析器和XML解析器之间的解释方式存在差异.
你可能有机会使用XSLT,并构建一个过滤器,但你不能验证它,因为没有DTD或任何等效的验证polyglot(x)html.即使那些存在的xhtml5的验证器正在被废弃,所以它会使你的任务变得困难.
无论如何,试图找到存在的那些验证器的来源是找到附近的源代码的最佳选择.
第3阶段:修复外部实体
说什么 ?那么你可以拥有漂亮的多语言(x)html并包含一个单一的javascript来执行单个document.write,但它仍然会失败.所以你需要在它工作之前追捕所有这些.