У меня такой код:
<Parent>
<Map sourcename="ItemAName" destinationname="itemaname">
<Assignment source="Test.OrderA.ItemA" destination="Test.OrderB.ItemA" sourcename="ItemAName" destinationname="ITEMANAME" description="descript3" mandatory="False"/>
<Assignment source="Test.OrderB.ItemA" destination="Test.OrderC.ItemA" sourcename="ITEMANAME" destinationname="itemaname" description="descript3" mandatory="False"/>
</Map>
<Map sourcename="ItemAQuantity" destinationname="itemaquantity">
<Assignment source="Test.OrderA.ItemA" destination="Test.OrderB.ItemA" sourcename="ItemAQuantity" destinationname="ITEMAQUANTITY" description="descript4" mandatory="False"/>
<Assignment source="Test.OrderB.ItemA" destination="Test.OrderC.ItemA" sourcename="ITEMAQUANTITY" destinationname="itemaquantity" description="descript4" mandatory="False"/>
<Assignment source="Test.OrderC.ItemA" destination="Test.OrderD.ItemA" sourcename="itemaquantity" destinationname="ItEmQuAnTiTy" description="descript4" mandatory="False"/>
</Map>
</Parent>
В этом случае я хочу отобразить таблицу, содержащую 6 столбцов (количество назначений на карте, которая содержит больше детей * 2). Иногда требуется больше или меньше, согласно данным в файле xml. Если я добавлю еще одну карту с четырьмя назначениями, в таблице должно быть 8 столбцов.
Я использую это:
<xsl:template match="Map">
<xsl:if test="position() = 1">
<tr class="bold">
<xsl:for-each select="Assignment">
<td><xsl:value-of select="@source"/></td>
<td><xsl:value-of select="@destination"/></td>
</xsl:for-each>
</tr>
</xsl:if>
<tr>
<xsl:apply-templates select="Assignment"/>
</tr>
</xsl:template>
<xsl:template match="Assignment">
<td><xsl:value-of select="@sourcename" /></td>
<td><xsl:value-of select="@destinationname" /></td>
</xsl:template>
Я знаю, что не должен использовать if, чтобы проверить, является ли оно первой позицией. Мне нужен способ подсчитать количество заданий у ребенка, у которого больше заданий.
Есть ли способ сделать это?
<tr>
для каждого<Map>
и<td>
для каждого<Assignment>
? Таблицы HTML уже будут использовать максимальное количество столбцов, которое используется в любой из строк. - person Erwin Bolwidt   schedule 05.02.2014xslt-1.0
иxslt-2.0
- эксклюзивные теги. Скажите, с какой версией вы работаете, и удалите одну из них. - person Mathias Müller   schedule 05.02.2014