2011-09-16 23 views
17

xslt dosyasında javaScript dosyasını/libary'yi nasıl ekleyebilirim/alabilirim.xslt dosyasına javaScript dosyası nasıl eklenir

+0

İyi soru 1. Javascript kodunu, dönüşüm sırasında çağrılan bir dizi uzantı işlevi olarak mı kullanmak istiyorsunuz yoksa bir javascript dosyasına veya her ikisine birden referans veren HTML kodu oluşturmak mı istiyorsunuz? Bütün bunlar geçerli ve anlamlı senaryolar. –

cevap

19

Eğer dönüşüm JavaScript kullanıyor gerekiyorsa, (biri javascript dosyası en az o JavaScript içeriğini koymak gerekir (örneğin, dönüşüm içinde denir uzatma işlevler kümesi içerir)) ayrı bir XSLT stil sayfası dosyasında, javascript kodunu içeren metin düğümünün üst öğesi olarak uygun uzantı elemanını (<msxml:script> gibi) kullanarak.

dosya XSL-JS.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> 

Dosya XSL Burada

herhangi bir Microsoft XSLT işlemcisine (Msxml3/4/6, XslCompiledTransform veya XslTransform) kullanarak, çok basit bir örnek, -Main.xsl javascript ithal olduğunu: dönüşüm, dosyada yer alan

<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> 

XSL-Main.xsl (ihmal/kullanılmaz) Herhangi bir XML belgesindeki uygulanır, istediği doğru sonuç üretilir: Eğer sadece XSLT uygulama ile oluşturmak istiyorsanız

A B C 

Tamamen farklı bir vaka olduğunu Verilen bir Javascript dosyasını referans alan bir HTML dosyası.

Sonra XSLT kodunda bu dahildir ve çıkış parçası olarak tam anlamıyla bu oluşturmak:

<script type="text/javascript" src="SomePath/SomeFileName.js"></script> 
9

oluşturulan HTML dosyasında bir JavaScript kaynağı dahil etmek çalışıyorsanız, komut dosyası etiketi yoludur . Ancak etiket boşsa birçok XSLT işlemcisi boğulacaktır. her şey yolunda görünüyor ama komut dosyası etiketleri eklerken boş çıktı alıyorsanız, olduğu gibi etiketi içindeki olmayan boşluk ekleyerek deneyin:

<script type="text/javascript" src="SomePath/SomeFileName.js">&#160;</script> 
+0

vay harika! Teşekkürler, .NET XsltTransform kitaplıklarını kullanarak sorunları yaşıyordum. –

İlgili konular