Ich habe eine Reihe von Sitecores Knoten:XSL-Gruppe Artikel
<item>
<item>
<item />
</item>
<item /> <!-- (1) -->
<item />
</item>
<item>
<item />
<item />
</item>
ich den Weg von diesem unter Verwendung einer Funktion sc erhalten: (.) Weg, der so etwas wie ‚/ Artikel/item‘ liefert für der mit (1) markierte Punkt.
Ich möchte in der Lage sein, das Element basierend auf ihrem Pfad zu gruppieren.
So würde meine Ausgabe so etwas wie:
<ul>
<li>in item
<ul>
...
</ul>
</li>
<li>in item/item
<ul>
...
</ul>
</li>
</ul>
ich mit den vorhergehenden Achsen im Moment spielte, wie in dem folgenden Code:
<xsl:for-each select="exsl:node-set($processedResult)/item">
<xsl:sort
select="substring-before(substring-after(sc:path(.),'/sitecore/media library/'),'.aspx')"
data-type="text"
order="ascending" />
<xsl:variable
name="path"
select="search:GetFriendlyPath('/sitecore/media library/',sc:path(.))" />
<!-- returns: item/item from /sitecore/media library/item/item/item.aspx -->
<xsl:variable name="lastPath">
<xsl:choose>
<xsl:when test="sc:path(preceding)">
<xsl:value-of
select="search:GetFriendlyPath('sitecore/media library',sc:path(preceding))" />
</xsl:when>
<xsl:otherwise>none</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$path != $lastPath"> <!-- grouping test -->
<li>
<strong>in <xsl:value-of select="$path" /></strong>
</li>
</xsl:if>
<li>
<!-- render detail -->
</li>
</xsl:for-each>
... aber sc: path (vorhergehend) gibt nichts zurück. Daher funktioniert mein Scheck nicht.
Was mache ich falsch?
wo kommt $ processedResult kommen? Haben Sie Zugriff auf die- s in Form eines Dokuments oder werden sie als RTF von einer Art Funktion zurückgegeben? –
Tomalak
Sorry, $ bearbeiteteResult ist die Struktur- . Es ist das Ergebnis einer Knoten-Set-Operation. Das erzeugt beabsichtigtes XML. –