2011-08-31 2 views
1

フィールドの出力をわずかに操作する必要のある古いSitecore 4ソリューションで作業しています。私は<sc:html field="message"/>または<xsl:value-of select="sc:fld('Message',.)"/>で出力している通常のフィールド(メッセージ)を持っています。リンクの置換または追加

どちらもうまくいきます。

私は今、リンクについては、「メッセージ」フィールドに検索する必要があり、その後、私はXSLT 1.0で上記を達成する可能性がどのように「<a href="http://www.thisismydomain.com?utm_campaign=01-01-2011">this is my link</a>

のようなリンクの末尾に日付を追加する必要がありますか?

+0

メッセージが表示されていて、エスケープされたマークアップが含まれている場合は、これが問題です。そうであれば、確実に行うことはできません。すべての入力を解析し、ツリー全体でXSL処理を行う方がはるかに優れています。あなたが@xsltで質問にタグを付けると、正規表現について考えることさえしないでください。 –

+0

「メッセージ」フィールドは、Sitecoreのリッチテキストフィールドです。 – iMac

+0

xsl拡張メソッドを追加してそこで処理できますか? – marto

答えて

0

私の理解では、私はあなたのオプションとしてこれらを参照してください

あなたが検索を行うと、リンクのURLを変換したいということです。試合のような機能をサポートしてい 1. XPath 2.0と正規表現を使用している交換するhttp://www.w3schools.com/xpath/xpath_functions.asp#stringかを参照してください。 http://www.w3.org/TR/xpath-functions/#func-replace。sitecore suppかどうかわからないXpath 2.0をortsします。メモリから私はXpath 2.0をサポートしていないと思う。それがない場合、あなたは幸運であり、あなたがこの

<xsl:choose> 
      <xsl:when test="contains(., 'http.*')"> 
       <strong><xsl:value-of select="replace(.,'http.*','REPLACED TEXT')"/></strong> 
      </xsl:when> 
      <xsl:otherwise> 
       <xsl:value-of select="."/> 
      </xsl:otherwise> 
      </xsl:choose> 
  1. のような類似した何かを行うことができます見つけて、前またはそれはあなたが出力をレンダリングする直前に、XSL変換を取得した後、メッセージの値を置き換えます。

もののために何かをする:あなたは、メッセージタグ内のリンクとして表示せずにURLを持っていないのはなぜ

  1. ?コンテンツにWYSIWYGを使用していない場合ですか?
  2. これはあまりにも多くの作業であるように見えますが、そのように思えます。あなたは、ページの最後にjavascriptを持つ回避策を持つことができます。 URLを見つけてリンクに置き換えるだけです。二重にしないでください。正規表現はあなたの友人です。
関連する問題