sobota, 18 maja 2013

DeliveryServer - DynaMents - Pobranie ścieżki węzła/liścia

Ostatnio zmagałem się z problemem pobrania ścieżki węzła/liścia w języku DynaMents, który używany jest po stronie DeliveryServer'a.

W XSLT można tego dokonać stosując:

<xsl:value-of select="name()"/>

Po długich bojach, udało mi się to osiągnąć przy pomocy DynaMent'u attribute działającego w trybie read. W DynaMencie tym można podać atrybut value. W atrybucie tym można podać 3 różne wartości, są to:

  • value - pobierana jest wartość węzła/liścia,
  • path - pobierana jest ścieżka węzła/liścia,
  • name - pobierana jest nazwa węzła/liścia. 

Listing poniżej przedstawia kod, który wypisuje wszystkie ścieżki węzłów z globalnej zmiennej REQUEST wraz z wartościami znajdującymi się w węzłach. Linia 3 tego listingu odpowiada za wypisanie ścieżki węzła.

1. <rde-dm:attribute type="children" mode="for-each"
                     alias="reqAttr" source="request">
2.    <rde-dm:attribute attribute="context:reqAttr" value="path"/>: 
3.    <rde-dm:attribute mode="read" attribute="context:reqAttr" />
4. </rde-dm:attribute>

Artykuł udostępniany na licencji CC-BY-SA-3.0

Brak komentarzy:

Prześlij komentarz