Come posso includere/importare file/libreria javaScript nel file xslt.Come includere il file javaScript in xslt
risposta
Se è necessario utilizzare il javascript nella trasformazione (ad esempio, contiene un insieme di funzioni di estensione chiamate all'interno della trasformazione), è necessario inserire i contenuti di JavaScript (almeno quello di un file javascript) in un file di fogli di stile XSLT separato, utilizzando l'elemento di estensione corretto (ad esempio <msxml:script>
) come genitore del nodo di testo che contiene il codice javascript.
Ecco un esempio molto semplice, utilizzando qualsiasi processore XSLT Microsoft (MSXML3/4/6, XslCompiledTransform o XslTransform):
file XSL-JS.xsl: XSL
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://mycompany.com/mynamespace">
<msxsl:script language="JScript" implements-prefix="user">
function xml(nodelist) {
return "A B C";
}
</msxsl:script>
</xsl:stylesheet>
File -Main.xsl che è l'importazione della javascript:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://mycompany.com/mynamespace">
<xsl:import href="XSL-JS.xsl"/>
<xsl:template match="/">
<xsl:value-of select="user:xml(.)"/>
</xsl:template>
</xsl:stylesheet>
Quando la trasformazione, contenuta nel file XSL-Main.xsl viene applicato su qualsiasi documento XML (non utilizzati/ignorato), The Wanted, risultato corretto è prodotto:
A B C
Un caso completamente diverso è se si desidera solo per generare con l'applicazione XSLT un file HTML che fa riferimento a un determinato file Javascript.
Poi si include questa nel codice XSLT e generare questo letteralmente come parte dell'output:
<script type="text/javascript" src="SomePath/SomeFileName.js"></script>
Se si sta tentando di includere una fonte Javascript nel file HTML generato, il tag script è il modo . Ma molti processori XSLT si soffocheranno se il tag è vuoto. Se tutto sembra bene, ma hai trovato output vuoto quando si aggiungono i tag di script, provare ad inserire uno spazio unificatore all'interno del tag come in:
<script type="text/javascript" src="SomePath/SomeFileName.js"> </script>
wow fantastico! Grazie, ho riscontrato problemi con l'utilizzo delle librerie .NET XsltTransform. –
Questo è quello che ho fatto e ha funzionato per me.
<script>
<![CDATA[
//ADD SCRIPT HERE.
}
]]>
</script>
Riferimento: http://www.w3schools.com/xml/xml_cdata.asp
Grazie mille! –
Buona domanda, +1. Vuoi utilizzare il codice javascript come un insieme di funzioni di estensione chiamate durante la trasformazione o vuoi generare codice HTML che faccia riferimento a un file javascript o entrambi? Tutti questi sono scenari validi e significativi. –