Przepraszamy za komentowanie tego starego wątku ale dla innych znalezienie go jak ja można też użyć JavaScript, jeśli używasz transformatora MS:
zadeklarować „msxsl” nazw:
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
Zadeklaruj nazw dla skryptu:
xmlns:js="urn:custom-javascript"
(opcjonalnie) pominąć th e prefiksy z wyjścia:
exclude-result-prefixes="msxsl js"
więc skończyć z deklaracją xsl jak ten:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:js="urn:custom-javascript"
exclude-result-prefixes="msxsl js">
pisać JavaScript w msxsl: Element scenariusz:
<msxsl:script language="JavaScript" implements-prefix="js">
<![CDATA[
function javascriptFunction(dateValue){
var date = new Date(dateValue);
if(!isNaN(date)) return date.toLocaleString();
return dateValue;
}
]]>
</msxsl:script>
zadzwonić do Funkcja JavaScript (przy użyciu składni XPath "." Oznaczającej "ten węzeł"):
<xsl:value-of select="js:javascriptFunction(string(.))"/>
NB: Od czasu pisania nie istnieje sposób (xsl) na dołączenie zewnętrznych plików js (np. biblioteka jquery). Można to zrobić, parsując stronę serwera plików xsl przed transformacją i dodając zawartość pliku js jako ciąg do sekcji CDATA. Zacząłem samodzielnie tę trasę, ale doszedłem do wniosku, że jeśli potrzebujesz tego poziomu funkcjonalności, lepiej będzie umieścić go w innej części rurociągu.
źródło: http://dev.ektron.com/kb_article.aspx?id=482
ref: http://www.ibm.com/developerworks/xml/library/x-tipxsltjs/index.html
Jest bardzo ważne, aby podać swoją wersję i XSLT platformę – AnthonyWJones
To najprawdopodobniej XSLT 1.0 i .NET bo pytanie jest oznaczona C# –
@divo: dobrze zauważony – AnthonyWJones