2013-09-28 34 views
6

Bir XSLT stil sayfasında, <xsl:attribute> etiketinin içinde öndeki ve sondaki boşlukları nasıl kaldırabilirim? Örneğin<xsl: attribute> etiketinin içinde boşluk bırakmak nasıl?

aşağıdaki biçim sayfası:

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

çıkışlar:

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

iken çıkış için bu gibi olacaktır: bu diğer gerçekleştirmek için herhangi bir şekilde

<myelement myattribute="attribute value"/> 

var <xsl:attribute> başlangıç ​​ve bitiş etiketlerini tek bir satırda mı topluyor?

Nitelik değeri düz bir metin satırı değil, ancak bazı karmaşık hesaplamaların (örneğin, veya etiketler) sonucunun sonucu değilse, öndeki ve sondaki boşluklardan kaçınmak için tüm kodun bir satırda daraltılması gerekir. korkunç çirkin stil sayfası.

cevap

6

Sen xsl metni sarabilirdiniz: metin veya 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> 

veya

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

sizin için bu yararlı mı? Aksi halde lütfen sorununuzu tek bir satır kullanarak açıklayın.

Lütfen Michael Kay'ın yorumunu dikkate alın, problemi konuya açıklar!

+0

Sorun, öznitelik değeri, örneğin '' öğeleriyle bazı karmaşık hesaplamaların bir sonucuysa, istenen sonucu elde etmek için tüm kodun bir satırda daraltılması, stil sayfasının korkunç çirkin görünmesini sağlar. –

+2

xsl: attribute ve xsl: select arasında linebreaks kullanabilirsiniz. Metin düğümlerinde linebreaks'tan kaçınmanız yeterlidir. Metin düğümündeki tüm linebreaks çıktıda bulunur. xsl elemanları arasındaki tüm linebreaks'ler atılacaktır. –

+1

Tamam, anladım. Gerçek hayattaki durumumda '', metin düğümleri tarafından "yan yana" idi; Her birini bir "" ile sarmak, boşlukları etkili bir şekilde kaldırır. Problem çözüldü, teşekkürler! –

İlgili konular