代码之家  ›  专栏  ›  技术社区  ›  justkt

XSLT 1纯文本间距

  •  3
  • justkt  · 技术社区  · 14 年前

    使用Perl的XML::libxslt需要使用xslt 1.0,这意味着我无法使用xslt 2.0功能。有没有一种方法,我仍然可以在我处理的纯文本输出中,干净地填充文本?我想要的是:

    <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不一定非常适合这种格式,但数据也可能以其他方式格式化。

    1 回复  |  直到 13 年前
        1
  •  2
  •   Alan W. Smith vishes_shell    13 年前

    通过使用常量字符串并复制填充所需的计数,总是有一种“便宜”的填充文本的方法,如下所示:

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