2010-02-12 50 views
1

我正在使用DataFormWebPart在SharePoint網站集中顯示所有公告。它使用SPDataSouce和DataSourceMode設置爲CrossList,它工作正常。公告的內容來自XML屬性:截斷SharePoint中的HTML屬性值DataFormWebPart

<xsl:value-of disable-output-escaping="yes" select="@Body" /> 

現在我需要將此文本限制爲250個字符。當然,我不能將它截斷爲一個簡單的字符串,因爲它可能會產生無效的HTML。我需要像ddwrt:限制但HTML意識。

有什麼想法嗎?

+0

您的要求很混亂。您的250個字符中包含HTML標籤嗎?一個支持HTML的子字符串函數會做什麼?它只會限制標籤內的文字嗎?它會剝離屬性嗎? – 2010-02-12 21:25:43

+0

不,標籤不包括在250字符數中,只是純文本。文本在常規的HTML格式標籤中交織在一起。如果@Body屬性包含文本樣品樣品和限制爲10個字符(只計算純文本),結果應該是文本 SAMPL。所以我需要以智能的方式截斷HTML格式的文本以生成仍然有效的HTML。希望這使我的問題清楚:-) – 2010-02-13 19:07:58

回答

0

我想你想顯示在頁面上250個字符,請使用該腳本

<xsl:if test="string-length(@Body) &lt;= 250"> 

    <xsl:value-of select="@Body"/> 
    </xsl:if> 
    <xsl:if test="string-length(@Body) &gt; 250"> 



    <xsl:value-of select="substring(@Body,0,250)"/>.... 

    </xsl:if> 
0

我發現這是一個非常簡單的解決方案,它試一下!

<xsl:value-of select="substring(@Body, 1, 250 + string-length(substring-before(substring(@Body, 250),' ')))" />