2016-07-14 26 views
0

我想用一個行號在.xslt文件中創建一個新行。我知道如何創建一個新的行:如何使用行號在.xslt中創建新行?

<xsl:text>&#xa;</xsl:text> 

然而,這只是輸出創建一個新的生產線,而不是行號。我想要的輸出將有行號(例如27:),然後將文本寫在後面,而不僅僅是文本。

編輯:輸出格式是XML。特定的代碼塊,我,與外表的工作,像這樣:
<xsl:otherwise> <xsl:text>FINE ACC100 TB (SEC PARA HERE),P-SPS;</xsl:text> <xsl:text>&#xa;</xsl:text> <xsl:text> 1: TC_ONLINE (ON) ;</xsl:text> <xsl:text>&#xa;</xsl:text> <xsl:text> 2: DO[23] = OFF ;</xsl:text> <xsl:text>&#xa;</xsl:text> <xsl:text> 3: CALL VW_USER(Basic10,Perceptron_IMT,Start_Messpunkt,,,Nr=(ROBO ID),,,EIN/AUS=ON) ;</xsl:text> <xsl:text>&#xa;</xsl:text> <xsl:text> 4: WAIT (DI[23]) ;</xsl:text> <xsl:text>&#xa;</xsl:text> <xsl:text> 5: DO[23] = ON ;</xsl:text> <xsl:text>&#xa;</xsl:text> <xsl:text> 6: TC_ONLINE (DI[14] AND DI[24] AND DI[80]) ;</xsl:text> <xsl:text>&#xa;</xsl:text> <xsl:text> ------ </xsl:text> </xsl:otherwise>
這將產生以下的輸出:

21:J P[3] 100% FINE ACC100 TB (SEC PARA HERE),P-SPS; 
    1: TC_ONLINE (ON) ; 
    2: DO[23] = OFF ; 
    3: CALL VW_USER(Basic10,Perceptron_IMT,Start_Messpunkt,,,Nr=(ROBO ID),,,EIN/AUS=ON) ; 
    4: WAIT (DI[23]) ; 
    5: DO[23] = ON ; 
    6: TC_ONLINE (DI[14] AND DI[24] AND DI[80]) ; 
    ------ ; 

但是我想1前行24,25,26,等等, 2,3,...

+0

這取決於你試圖插入行的位置。例如,如果is是針對某個集合中的項目,則可以使用'position()'將其打印出來。你必須有一些變量來跟蹤行號。 –

+0

那麼哪種輸出方式的格式分別是純文本或HTML或某種XML格式? –

+0

如果格式是XML,那麼請提供一些上下文,如最小輸入樣本,要創建的相應輸出和當前XSLT。 –

回答

0

哇,這看起來好老BASIC!

我認爲這裏最乾淨的方法將是一個2遍轉換。第一生成輸出作爲XML:

<basic> 
    <line>TC_ONLINE (ON)</line> 
    <line>DO[23] = OFF<line> 
    <line>CALL VW_USER(Basic10,Perceptron_IMT,Start_Messpunkt,,,Nr=(ROBO ID),,,EIN/AUS=ON)</line> 
    <line>WAIT (DI[23])</line> 
</basic> 

然後序列化文本和在第二遍中,其可以使用平凡位置()或XSL進行添加的行號:號碼。