2012-06-26 4 views

답변

3

C# TBB를 만들어 패키지에 범주 키워드를 삽입 한 다음이 키워드를 XSLT의 매개 변수로 액세스해야합니다.

다음과 같은 C#을의 조각을 사용할 수 있습니다

class GetCategoryKeywords : TemplateBase 
    { 
     public override void Transform(Engine engine, Package package) 
     { 
      Initialize(engine, package); 
      String webDavPathCategory = package.GetValue("CategotryWebDavPath"); 
      Category cat = (Category)engine.GetObject(webDavPathCategory); 
      XmlDocument keywordsXml = new XmlDocument(); 
      keywordsXml.LoadXml(cat.GetListKeywords().OuterXml); 
      Item output = package.CreateXmlDocumentItem(ContentType.Xml, keywordsXml); 
      package.PushItem("CategoryKeywords", output); 
     } 
    } 

이 패키지에 키워드를 포함라는 CategoryKeywords를 XML 문서를 배치합니다. 당신은 XSLT 중재자를 호출 그런 경우 다음과 같이 true로 "포함 패키지 Paramters"값을 설정하고 XSLT의 상단에 매개 변수를 추가 :

<xsl:param name="CategoryKeywords"/> 

할 수 있습니다 다음 변수로 새 매개 변수를 통해 루프 원하는 XPath 쿼리를 수행합니다. 다음 샘플은 도움이 될 수 있습니다.

<xsl:variable name="URI" select="$CategoryKeywords//tcm:ListUsedItems/tcm:Item[@Title=$VALUE]/@ID" /> 

<xsl:for-each select="$CategoryKeywords//tcm:ListItems/tcm:Item"> 
    Do something 
<xsl:for-each>