2010-05-17 65 views
3

使用Perl的XML :: LibXSLT需要使用XSLT 1.0,這意味着我被卡住而沒有XSLT 2.0功能。有沒有一種方法可以在我的處理的純文本輸出中乾淨地填充文本?我要的是:XSLT 1純文本間距

<values> 
    <headers> 
     <header>Header 1</header> 
     <header>Header 2</header> 
    </headers> 
    <value> 
     <one>First value 1</one> 
     <two>First value 2</two> 
    </value> 
    <value> 
     <one>Second value 1</one> 
     <two>Second value 2</two> 
    </value> 
    .... 
    <value> 
     <one>Nth value 1</one> 
     <two>Nth value 2</two> 
    </value> 
</values> 

要成爲

Header 1   Header 2 
First value 1  First value 2 
Second value 1 Second value 2 
.... 
Nth value 1  Nth value 2 

我意識到,XSLT不一定非常適合這種類型的格式,但數據可能也被格式化其他方法。

回答

2

總是有填充文字的使用字符串常量,做需要墊計數的副本,這樣「廉價」的方式:

<xsl:variable name="space" select="'      '" /> 
<xsl:variable name="text" select="'Header 1'" /> 
<xsl:value-of select="concat($text,substring($space,string-length($text)))" /> 
+0

工程就像一個魅力,謝謝。 – justkt 2010-05-17 16:19:34

+0

難道你不必在這裏使用保留空間嗎?只是問問。 http://www.w3schools.com/xsl/el_preserve-space.asp – 2010-05-17 17:20:38

+1

@AJ:不可以。請注意,問題中請求的輸出是文本,而不是XML或HTML。 – Lucero 2010-05-17 23:07:28