6

XSLT スタイルシートで、<xsl:attribute>タグ内の先頭と末尾の空白を削除するにはどうすればよいですか?

たとえば、次のスタイルシート:

<xsl:template match="/">
  <xsl:element name="myelement">
    <xsl:attribute name="myattribute">
      attribute value
    </xsl:attribute>
  </xsl:element>
</xsl:template>

出力:

<myelement myattribute="&#10;      attribute value&#10;    "/>

出力したいのですが:

<myelement myattribute="attribute value"/>

<xsl:attribute>開始タグと終了タグを 1 行に折りたたむ以外にそれを達成する方法はありますか?

属性値が単純なテキスト行ではなく、複雑な計算 (またはタグを使用するなど) の結果である場合、先頭と末尾の空白を避けるためにすべてのコードを 1 行に折りたたむと、スタイルシートがひどく醜くなるためです。

4

1 に答える 1

7

xsl:text または xsl:value-of: でテキストをラップできます。

<xsl:template match="/">
    <xsl:element name="myelement">
        <xsl:attribute name="myattribute">
            <xsl:text>attribute value</xsl:text>
        </xsl:attribute>
    </xsl:element>
</xsl:template>

また

<xsl:template match="/">
    <xsl:element name="myelement">
        <xsl:attribute name="myattribute">
            <xsl:value-of select="'attribute value'"/>
        </xsl:attribute>
    </xsl:element>
</xsl:template>

これは役に立ちますか?それ以外の場合は、問題を 1 行で説明してください。

Michael Kay のコメントに注目してください。問題を要点まで説明しています。

于 2013-09-28T21:50:43.467 に答える