我想從Sitecore中的XSLT幫助器函數返回項目列表。這些項目可能會來自內容樹中的多個不同位置,因此不能使用簡單的XPath表達式。從Sitecore XSLT幫助器函數返回項目列表
我懷疑我需要對XPathNodeIterator類做些什麼,但是我無法弄清楚如何創建一個暴露列表而不是內容樹的連續部分的列表。
我知道我可以返回ID的列表,然後遍歷那些在XSLT(目前我在做什麼),但它是凌亂的,我想擺脫它。有誰知道如何做到這一點?
我正在使用Sitecore 6.2。
我想從Sitecore中的XSLT幫助器函數返回項目列表。這些項目可能會來自內容樹中的多個不同位置,因此不能使用簡單的XPath表達式。從Sitecore XSLT幫助器函數返回項目列表
我懷疑我需要對XPathNodeIterator類做些什麼,但是我無法弄清楚如何創建一個暴露列表而不是內容樹的連續部分的列表。
我知道我可以返回ID的列表,然後遍歷那些在XSLT(目前我在做什麼),但它是凌亂的,我想擺脫它。有誰知道如何做到這一點?
我正在使用Sitecore 6.2。
是的。根據你想要做的項目選擇的性質,有很多方法可以達到此目的。
下應該做的伎倆
public XPathNodeIterator MyFunction(Item[] itemsToReturn)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(@"<items />");
foreach (Item i in itemsToReturn)
doc.DocumentElement.AppendChild(XmlUtil.NavigatorToNode(Factory.CreateItemNavigator(i), doc, true, new string[] { "item" }, new string[ 0 ]));
XPathNavigator nav = doc.CreateNavigator();
return nav.Select("/items/*");
}
我沒有時間充分測試,但它應該給你在正確的方向:-)
它似乎工作。非常感謝! – Matt 2010-08-06 09:02:47