¿Es posible aplicar una transformación XSLT a un elemento DOM?

Tengo una página web que tiene muchos elementos generados por el usuario que necesitan ser "limpiados" y me gustaría que la limpieza se expresara como una transformación XSLT porque se adapta bastante bien al propósito.

¿Hay alguna forma de aplicar una transformación XSLT a parte de una página web? (¿Y el elemento de origen debe ser verificado por algo similar al grupo de etiquetas primero, para asegurarse de que esté bien formado?)

Todos los ejemplos que encuentro tratan de obtener un archivo XML y un archivo XSL, a través de Ajax, y ejecutar uno contra el otro, pero sin tomar un subconjunto del DOM y ejecutar un XSLT en él. Se puede hacer?

preguntado el 27 de agosto de 11 a las 17:08

2 Respuestas

¿En qué contexto quieres hacer eso? ¿El documento ("página web") ya está cargado en una ventana del navegador? Algunos navegadores exponen una API a Javascript para aplicar XSLT a los nodos DOM, por ejemplo, Mozilla introdujo una API y otros navegadores como Opera la han copiado: https://developer.mozilla.org/en/using_the_mozilla_javascript_interface_to_xsl_transformations.

Y, por supuesto, existe Saxon-CE que se ejecuta dentro del navegador: http://www.saxonica.com/ce/doc/contents.html. Eso incluso le permite aplicar XSLT 2.0 a los nodos DOM.

Respondido el 16 de junio de 12 a las 01:06

La API de Mozilla se ve exactamente como lo que estoy buscando, muchas gracias. ¿Sabe si existe una solución para varios navegadores? (Escuché sobre Saxon CE, pero aún es muy alfa, requiere mucha descarga y solicitaré una licencia comercial cuando esté lista; prefiero usar transformaciones XSLT 1.0 en el navegador que son más que suficientes para lo que necesitar). - Bambax

En cuanto a un enfoque de navegador cruzado, como dije, Opera también es compatible con la API de Mozilla, creo que Chrome y Safari en la superficie también lo hacen, pero creo que tendrá problemas cuando lo ejecute (consulte stackoverflow.com/questions/6985048/…). IE no admite esa API e incluso con IE 9 que admite documentos XHTML y SVG DOM No creo que pueda aplicarles XSLT ya que el DOM que implementa IE está completamente separado del DOM que MSXML, el procesador XSLT basado en COM de Microsoft implementa respectivamente consume como árboles de entrada XSLT. - Martin Honnen

Dado que HTML no es XML, no creo que pueda realizar una transformación XSLT en una página HTML. Sin embargo, podrá hacerlo en una página XHTML.

Respondido 27 ago 11, 21:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.