如何使用行号在.xslt中创建新行?

时间:2016-07-14 14:53:28

标签: xslt newline line-numbers

我想在.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,2,3,...之前想要第24,25,26等等。

1 个答案:

答案 0 :(得分:0)

哇,这看起来好老BASIC!

我认为这里最干净的方法是两次转换。首先以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>

然后序列化为文本并在第二遍中添加行号,这可以使用position()或xsl:number来轻松完成。