簡體   English   中英

行變量更改時,XSLT添加標頭

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM