値をハードコーディングしていcolspan
ますが、たとえば、xsl:variable
?
問題は、XSL を使用して表示しようとしているものよりも多くの属性が XML ノードに含まれているため、カウントのために XML 自体を参照できないことです。そのため、代わりに XSL 内の html テンプレートを参照できないかと考えています。
サンプル XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xsl/allcompanies.xsl"?>
<Companies>
<row Name="Company One" Address="Grote Markt 1" ZIP="1000" City="BRUSSEL" Country="BE" Telephone="02 261 05 55" Fax="" Email="" />
<row Name="Company Two" Address="Tielweg 10" ZIP="2803 PK" City="Gouda" Country="NL" Telephone="" Fax="" Email=""/>
<row Name="Company Three" Address="6 S.Millrock Drive" ZIP="UT 84121" City="Salt Lake City" Country="US" Telephone="+1 801 928 0000" Fax="" Email="" />
</Companies>
XSL:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<body>
<table>
<tr>
<th colspan="6">Companies</th>
</tr>
<tr>
<th>Name</th>
<th>Address</th>
<th>ZIP</th>
<th>City</th>
<th>Country</th>
<th>Telephone</th>
</tr>
<xsl:for-each select="Companies/row">
<tr>
<td><xsl:value-of select="@Name"/></td>
<td><xsl:value-of select="@Address"/></td>
<td><xsl:value-of select="@ZIP"/></td>
<td><xsl:value-of select="@City"/></td>
<td><xsl:value-of select="@Country"/></td>
<td><xsl:value-of select="@Telephone"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:transform>
私はその線に沿って何かを考えていました
<th colspan="{count(//table/tr[last()]/td)}">Companies</th>
しかし、それから何かが...うまくいきます。
私がここで試みていること ( a を設定することcolspan
) はもちろん自明であることを十分に理解しており、根底にある問題、つまりそれ自体にxslt
適用するという問題を突いてみようとしXPath
ています。