Есть ли простой способ заставить функцию расширения в XSLT 1.0, написанную на javascript, возвращать набор узлов?
Я мог бы создать для этого новый класс java, но я бы предпочел просто поместить некоторый код в сам скрипт.
Когда это можно сделать на другом языке сценариев, поддерживаемом всеми или большинством XSLT-процессоров (сценарий VB? Groovy? C#?), тогда это, конечно, тоже нормально.
У меня есть следующий простой скрипт:
<msxsl:script language="JScript" implements-prefix="custom">
function xml (input) {
var x = input.split(";");
return x.toString();
}
</msxsl:script>
который возвращает строку и, следовательно, не вызывает проблем с вызовом функции в выражениях Xpath.
Что я хотел бы получить, так это результат набора узлов. Но когда я меняю свой сценарий на
<msxsl:script language="JScript" implements-prefix="custom">
function xml (input) {
var x = input.split(";");
return x;
}
</msxsl:script>
затем вызов функции дает ошибку, потому что массив не преобразуется автоматически в набор узлов.
Я просмотрел arrays-with-java-xslt-extensions, но это больше похоже на строку создания нового класса для этого, чего я пока хочу избежать.
Итак, какие операторы следует добавить в сценарий, чтобы преобразовать массив в набор узлов, что позволит использовать вызов функции в выражениях Xpath?
foo.split(";")
) в набор узлов, что не имеет особого смысла. - person Dagg Nabbit   schedule 19.04.2012