0
在任何其他語言中,我可以將前一行的值存儲在變量中,然後查看它是否與當前值匹配,但是唉,XSL中的變量並不是真的「可變」或類似的東西......XSL:如果不在html表中重複一個值(前兄弟?)
那麼,我該如何完成本應該是一件簡單的任務呢?
我有一些(可能形式很差)XML,由第三方應用程序輸出。我用它使用XSL輸出中每個以下的行爲HTML錶行:
<xsl:for-each select="Designs/TrackingDetails/Details">
<tr>
<th width="200"><xsl:value-of select="./@DGGroup"/></th>
<th width="350"><xsl:value-of select="./@DGName"/></th>
<td><xsl:value-of select="./@DGDate"/></td>
<td><xsl:value-of select="./@DGUser"/></td>
</tr>
</xsl:for-each>
我想是因爲它僅打印每一個獨特的「DGGroup」一次,但無論是打印所有的人,或者什麼都不是。
所以,到最後,我想HTML這樣的(使用XML類似帖子的底部):
<tr><td>General</td><td>Quote in Date</td><td>04/16/2015</td><td>Ed Garcia</td></tr>
,並在下一行:
<tr><td></td><td>Bid Complete</td><td>04/12/2015</td><td>John Smith</td></tr>
這裏的一些代碼,到目前爲止,我已經試過:
<xsl:if test="preceding-sibling::./DGGroup[1]=self::./DGGroup">
和
<xsl:if test="preceding-sibling::*[1]=./@DGGroup">
...這兩者都不工作
下面是一些XML的示例:
<Designs>
<TrackingDetails Transactions_Id="2" Reference="A1234">
<Details DGGroup="General" DGName="Quote in Date" DGDate="04/16/2015" DGUser="Ed Garcia" />
<Details DGGroup="General" DGName="Bid Complete" DGDate="04/12/2015" DGUser="John Smith" />
<Details DGGroup="Design" DGName="Approval Recieved" DGDate="" DGUser="" />
<Details DGGroup="Design" DGName="Design Complete" DGDate="09/18/2015" DGUser="Fred Smith" />
<Details DGGroup="Production" DGName="Released to Production" DGDate="09/18/2015" DGUser="Fred Smith" />
<Details DGGroup="Production" DGName="At Printers" DGDate="" DGUser="" />
<Details DGGroup="Production" DGName="Packaged" DGDate="" DGUser="" />
<Details DGGroup="Delivery" DGName="Delivery Packet Made" DGDate="09/18/2015" DGUser="Fred Smith" />
<Details DGGroup="Invoice" DGName="Invoiced" DGDate="" DGUser="" />
</TrackingDetails>
任何想法? TIA!
感謝。問題:我現在有一個for-each選擇我在哪裏傳遞值:/ TrackingDetails [@ Reference = $ currentOT]/Details - 我應該在哪裏添加它?將選擇添加到? –
Nitwit
我認爲'TrackingDetails'需要被'TrackingDetails [@ Reference = $ currentOT]'替換(無論它在哪裏)(目前在兩行) –
我還不能投票,所以這裏是一個大拇指:0) – Nitwit