5

virable に追加する部分文字列テキストを呼び出したい

<xsl:variable name="substringbreakText">
          <xsl:call-template name="insertBreaks"> 
               <xsl:with-param name="subject" select="substring(PublicProfile/AboutMe,1,550)"/> 
              </xsl:call-template>
    </xsl:variable>

そして、空白または改行が得られるまで、このテキストのバックワードに戻るようにします。したがって、私のポイントは、550文字未満の文字列を返すことですが、それを複雑な単語に見えるように保つことです

例: それは私の 550 文字です: 「あなたが見ている画像は、イギリスのアングリア ユークラ大学の研究支援ユニットのアカデミック開発の名誉教授である Graham Bverly を描写していると主張しています。 .

しかし、この肖像画は読者にどのようなメッセージを示唆しているのでしょうか? そのバドリーは博識な思想家を装っていますか? 彼は真実の光を求めているのですか?彼が左に傾いていること?彼がそのようなふりをして面白がっていることはありますか?彼は懐疑的ですか?多分。「人はあるがままに、彼は見る」(ウィリアム・ブリーア)

えめ」

空白と「Eme」を切り取りたい、または \r\n または
この文字列を切り取りたい。

4

2 に答える 2

9
<xsl:value-of select="substring(@Description, 1, 500 + string-length(substring-before(substring(@Description, 501),' ')))" />

これは、必要に応じてピリオドまたは何でも一致するように変更できます:)

于 2012-04-19T10:10:56.980 に答える
0

XSLT 1.0 を使用している場合、550 番目の文字の前の最後のスペースを見つけるには再帰が必要です。文字列を指定したテンプレートを作成します。

(a) 文字列の最後の文字をテストします (substring(s, string-length(s), 1) を使用)

(b) スペースの場合、文字列を返します

(c) それ以外の場合は、substring(s, 1, string-length(s)-1) を引数として渡して自分自身を呼び出します。

このテンプレート部分文字列 (in, 1, 500) を渡すと、指定された入力の最後のスペースで終わる文字列が返されます。

于 2012-04-19T10:34:38.243 に答える