2011-08-31 6 views
1

필드의 출력을 약간 조작해야하는 이전 Sitecore 4 솔루션을 개발 중입니다. 정상적인 필드 (메시지)가 <sc:html field="message"/> 또는 <xsl:value-of select="sc:fld('Message',.)"/>을 통해 출력하고 있습니다.링크 바꾸기 또는 추가

잘 작동합니다.

나는 지금 링크의 "메시지"필드에서 검색해야하고 내가 그래서 "

<a href="http://www.thisismydomain.com?utm_campaign=01-01-2011">this is my link</a> 어떻게 내가 XSLT 1.0 위를 달성 할 수와 같은 링크의 끝에 날짜를 추가해야합니까?

+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. 이것이 너무 많은 것처럼 보인다고 들리는데요. 페이지 끝에 자바 스크립트가있는 문제 해결 방법을 사용할 수 있습니다. 그러면 단순히 URL을 찾아 링크로 대체합니다. 두 배로 올리지 마십시오. 정규 표현식은 당신의 친구입니다.