SDL tridion 2011 SP1을 사용하고 있습니다.XSLT TBB (XSLT Mediator) 카테고리 tcm id가있는 경우 키워드 목록을 얻는 방법
XSLT Mediator를 사용하여 주어진 카테고리에서 키워드 목록을 얻고 싶습니다.
이 상황을 경험 한 사람이 있습니까? 그렇다면 의견을 공유하십시오.
하지만 실제로 카테고리 항목 XML을 보면 키워드와 관련된 정보가 없습니다.
SDL tridion 2011 SP1을 사용하고 있습니다.XSLT TBB (XSLT Mediator) 카테고리 tcm id가있는 경우 키워드 목록을 얻는 방법
XSLT Mediator를 사용하여 주어진 카테고리에서 키워드 목록을 얻고 싶습니다.
이 상황을 경험 한 사람이 있습니까? 그렇다면 의견을 공유하십시오.
하지만 실제로 카테고리 항목 XML을 보면 키워드와 관련된 정보가 없습니다.
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>