【发布时间】:2011-01-28 21:40:50
【问题描述】:
您好,我对 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、min、max 等,因此我不确定将什么作为调用参数传入。我希望能够传入字段名称(a、b、c 等)并让它以这种方式工作,但是当我这样做时无法编译我的代码。
例如,要找到字段“a”的最大值,我会执行以下操作:
<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')。
TIA
【问题讨论】:
-
@user594433:请为您发布的输入示例提供所需的输出:很多时候,人们认为他应该做什么,这不是正确的 XSLT 方式。
标签: xslt