[英]XSLT Add Headers When Row Variable Changes
我們有一個Python腳本可以生成類似於以下內容的XML輸出報告:
<ROOT>
<results3>
<ROW **TicketNumber="CHG000000061374"** Env=" " CustomerProject="MCI-Sacramento" Program="Infrastructure" Summary="INFRA - Bi-Weekly Sac Portal Maintenance - SACPORTAL2" ImplementorGroup="Database Management" Implementor="Juan "/>
<ROW **TicketNumber="CHG000000061374"** Env=" " CustomerProject="MCI-Sacramento" Program="Infrastructure" Summary="INFRA - Bi-Weekly Sac Portal Maintenance - SACPORTAL2" ImplementorGroup="Database Management" Implementor="Malcolm"/>
<ROW **TicketNumber="CHG000000061374"** Env=" " CustomerProject="MCI-Sacramento" Program="Infrastructure" Summary="INFRA - Bi-Weekly Sac Portal Maintenance - SACPORTAL2" ImplementorGroup="Incident Support-OSSC" Implementor="Amar"/>
<ROW **TicketNumber="CHG000000061375"** Env=" " CustomerProject="Verizon-KOVR" Program="Operations - SAC" Summary="INFRA - Server decom - see description" ImplementorGroup="Operations - SAC" Implementor="Ralph"/>
<ROW **TicketNumber="CHG000000061375"** Env=" " CustomerProject="Verizon-KOVR" Program="Operations - SAC" Summary="INFRA - Server decom - see description" ImplementorGroup="Operations - SAC" Implementor="Ralph"/>
然后將XML轉換為HTML。
當TicketNumber變量更改時,我想添加標題行或添加空白行或更改格式,以便用戶可以輕松查看分組在一起的一張票證的所有信息。 否則,它將完全運行。 在XSLT中有沒有辦法做到這一點?
跟隨XSLT
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="results3">
<table>
<xsl:apply-templates select="ROW"/>
</table>
</xsl:template>
<xsl:template match="ROW">
<xsl:if test="@TicketNumber != preceding-sibling::ROW[1]/@TicketNumber">
<tr>Header</tr>
</xsl:if>
<tr>
<xsl:attribute name="id" select="@TicketNumber"/>
</tr>
</xsl:template>
</xsl:stylesheet>
當應用於示例中的調整后輸入(去除**)時,將生成輸出
<table>
<tr id="CHG000000061374"></tr>
<tr id="CHG000000061374"></tr>
<tr id="CHG000000061374"></tr>
<tr>Header</tr>
<tr id="CHG000000061375"></tr>
<tr id="CHG000000061375"></tr>
</table>
匹配ROW
的模板檢查當前行的票證號是否與前一/前一行的票證號不同- @TicketNumber != preceding-sibling::ROW[1]/@TicketNumber
並在這種情況下添加標題行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.