Приветствую вас, я немного новичок в XSL и задал вопрос о шаблонах звонков и параметрах.Параметр, передаваемый шаблону вызова в xsl
Предположим, у меня есть следующий XML:
<rec>
<a>1</a>
<b>2</b>
<c>3</c>
(etc.)
</rec>
<rec>
<a>4</a>
<b>9</b>
<c>2</c>
(etc.)
</rec>
и т.д ...
Я пишу колл-шаблон, который будет отображать строку() в HTML-таблицы множество строк. Каждая строка должна записывать имя, среднее значение, мин, макс и т. Д. Каждого поля всего набора записей.
, так что я хотел бы назвать <xsl:call-template name="DisplayRow"> <xsl:with-param name="fieldname" select="??"/>
шаблон вызова нужно будет перебирать все записи, чтобы найти AVG, мин, макс, и т.д., так что я не уверен, что передать в качестве параметра вызова. Я надеялся, что смогу передать имя поля (a, b, c и т. Д.) И заставить его работать таким образом, но я не могу получить свой код для компиляции, когда я это делаю.
Например, чтобы найти максимальное значение поля 'а' Я хотел бы сделать что-то вроде:
<xsl:for-each select="/Rec[a!='NaN']">
<xsl:sort data-type="number" select="a" order="ascending"/>
<xsl:if test="position()=1">
и т.д.
Для Avg я бы (пропуск NaN):
<xsl:value-of select="sum(/rec/a[number(.)=number(.)])
div count(/rec/a[number(.)=number(.)])"/>
и т. Д.
Мне также нужно распечатать буквальное имя (например, «a») в строке.
ТИА
@ user594433: Пожалуйста, обеспечить желаемый результат для входного образца, который вы опубликовали: много раз, что, по его мнению, он должен делать, это не правильный способ XSLT. –