Я думаю, что ответ на ваш вопрос - да. Вы можете отправить узел в функцию XSLT.
Если вам интересно, что использовать для значения атрибута as = "", у вас есть несколько вариантов. Если вы хотите быть очень слабым и принимать что угодно, используйте as = "item () *" .
item () * .. своего рода набор узлов? W3C
Да, я согласен, это выглядит довольно
бессмысленно, не так ли? Тем не мение. По состоянию на
ЧР, это довольно важно, особенно
если вы хотите использовать типы. И хочу
генерировать, скажем, набор узлов .. извините
последовательность, в переменной.
Это создает переменную, которую вы можете взломать
в использовании Xpath довольно легко. То есть
запомнить элемент () *.
типов ... несколько примеров. W3C
Из пояснительного письма от Майка
Кей, спасибо Майк. Примеры:
<xsl:param name="x" as="item()"/>
значение параметра может быть любым элементом
(то есть узел или атомное значение). Но это
должен быть один элемент.
<xsl:param name="x" as="item()?"/>
параметр может быть одним элементом или
пустая последовательность
<xsl:param name="x" as="item()+"/>
параметр должен быть последовательностью
один или несколько предметов - пустая последовательность
не допускается
<xsl:param name="x" as="item()*"/>
параметр может быть любой последовательностью
ноль или более предметов - это мест нет
ограничения на его значение.
<xsl:param name="x" as="node()*"/>
параметр может быть любой последовательностью
ноль или более узлов
<xsl:param name="x" as="xs:atomicValue*"/>
параметр может быть любой последовательностью
ноль или более атомных значений (например,
целые числа, строки или логические значения).
item () * - самый общий тип
возможно, это соответствует всему, как
«Объект» в Java. По этой причине это
обычно может быть опущено. Но нет
всегда, например, тип по умолчанию
в xsl: переменная не item () *, но
document-node (), чтобы гарантировать, что
<xsl:variable name="rtf"><a>thing</a> </xsl:variable>
продолжает вести себя как XSLT 1.0
Используйте их для указания параметров,
типы переменных и т. д.