是否可以将XSLT转换应用于DOM元素?

是否可以将XSLT转换应用于DOM元素?

问题描述:

我有一个网页,有许多用户生成的元素需要“清理”,我希望清理表达为XSLT转换,因为它非常适合目的。是否可以将XSLT转换应用于DOM元素?

有没有办法将XSLT转换应用到网页的一部分? (并且源元素是否必须首先通过类似于tagoup的方式进行检查,以确保它的格式良好?)

我发现的所有示例都是关于通过Ajax获取XML文件和XSL文件的,以及运行一个针对另一个,但没有采取DOM的子集并在其上运行XSLT。可以做到吗?

你想要做什么上下文?文档(“网页”)是否已经加载到浏览器窗口中?某些浏览器向API公开API以将XSLT应用于DOM节点,例如Mozilla推出了一个API,Opera等其他浏览器也复制了它:https://developer.mozilla.org/en/using_the_mozilla_javascript_interface_to_xsl_transformations

当然还有在浏览器内运行的Saxon-CE:http://www.saxonica.com/ce/doc/contents.html。这甚至允许您将XSLT 2.0应用于DOM节点。

+0

Mozilla API看起来和我在找的一模一样,非常感谢。你知道是否有跨浏览器解决方案吗? (我听说过Saxon CE,但它仍然非常流行,需要大量下载,并且在准备就绪时会要求获得商业许可;我宁愿使用浏览器内的XSLT 1.0转换,这些转换对我来说已经足够了需要)。 – Bambax

+0

对于一个跨浏览器的方法,正如我所说Opera也支持Mozilla API,我认为表面上的Chrome和Safari也是如此,但我认为在执行时会遇到问题(请参阅http:// *。 COM /问题/ 6985048 /转化-HTML节点与 - XSLT功能于铬的webkit)。 IE不支持该API,即使支持XHTML和SVG DOM文档的IE 9,我也不认为你可以将XSLT应用于它们,因为IE实现的DOM与微软基于COM的XSLT处理器MSXML实现的DOM完全分离分别作为XSLT输入树消耗。 –

由于HTML不是XML,我不认为您将能够在HTML页面上执行XSLT转换。但是,您可以在XHTML页面上执行此操作。