Часть "выберите ="/..»не сгенерирует исключение (для меня, право XPath является ../), но ничего не делает.
Почему определить параметр, как это?
Это полезно в XSLT 1.0, чтобы указать, что тип xsl:param
или xsl:variable
задан узлом.
Затем процессор XSLT не будет выдавать ошибку на выражение как:
$bla | $myNodeSet
С другой стороны, если вы просто определить параметр, не давая ей значение любого по умолчанию, приведенное выше выражение выдает ошибку - - sometnhing как:
"Выражение должно определять множество узлов"
Easy VERIF ication:
Попробуйте это (работает нормально):
<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>
А, хороший ответ. –
Действительно хороший ответ. Спасибо Димитрию! –
@GiulianiSanches: Добро пожаловать. –