【发布时间】:2016-08-24 23:26:28
【问题描述】:
这是一个 xsl 文档的摘录(在技术上是在模板内):
<table>
<tr>
<th>INSTANCE</th>
<th>SWVER</th>
<th>SYSTEMID</th>
<th>SYSTIME</th>
<th>SYSMEM</th>
<th>CUTMEM</th>
<th>FILEMEM</th>
<th>CALCONFIG</th>
</tr>
<tr>
<td><xsl:value-of select='@INSTANCE'/></td>
<td><xsl:value-of select='@SWVER'/></td>
<td><xsl:value-of select='@SYSTEMID'/></td>
<td><xsl:value-of select='@SYSTIME'/></td>
<td><xsl:value-of select='@SYSMEM'/></td>
<td><xsl:value-of select='@CUTMEM'/></td>
<td><xsl:value-of select='@FILEMEM'/></td>
<td><xsl:value-of select="@CALCONFIG"/></td>
</tr>
</table>
有什么方法可以避免将属性写出作为表头和属性选择的冗余?我不能使用外部资源。
我在想我可以定义一些包含基本结构的 xsl 变量,如下所示并从那里生成表。
<list>
<item>INSTANCE</item>
...
<item>CALCONFIG</item>
</list>
XML 数据只是一堆标签,它们的值相同,至少包含上面列出的属性。每个标签看起来像这样:
<THING INSTANCE="boop" SWVER="foo" SYSTEMID="123"
...
CALCONFIG="cal.cfg" SOMETHINGELSE="bar"
/>
【问题讨论】:
-
您需要显示输入 XML 和完整的样式表。
-
完成。有什么想法吗?
-
恕我直言,替代方案最终会比你所拥有的更冗长且可读性更低 - exp。如果您使用的是 XSLT 1.0。
-
@michael.hor257k 如果有某种替代方案,我仍然会很感兴趣。谢谢!
-
您的处理器支持哪个版本的 XSLT?