Часть "select =" / .. "не выдает исключение (для меня правильный xpath - это ../), но ничего не делает.
Зачем определять такой параметр какчто?
Это полезно в XSLT 1.0 , чтобы указать, что тип xsl:param
или xsl:variable
задан для узла.
ТогдаXSLT-процессор не выдаст ошибку в выражении, например:
$bla | $myNodeSet
Напротив, если вы просто определяете параметр, не задавая ему никакого значения по умолчанию, приведенное выше выражение выдает ошибку - что-то вроде:
" Выражение должно соответствовать набору узлов "
Простая проверка :
Попробуйте это (работает нормально):
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:param name="blah" select="/.."/>
<xsl:copy-of select=". | $blah"/>
</xsl:template>
</xsl:stylesheet>
и это (приводит к ошибке):
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:param name="blah"/>
<xsl:copy-of select=". | $blah"/>
</xsl:template>
</xsl:stylesheet>