У меня почти нет опыта работы с XSL, и мне нужна помощь.У меня есть компонент, который отображается в файле ASCX, но его необходимо переместить, чтобы он был внутри файла XSL, и я не уверен в синтаксисе.
У меня есть предмет Sitecore, /sitecore/content/Home/Social Media Link Group
;Мне нужны все дети этого предмета, /sitecore/content/Home/Social Media Link Group/[Social Media Item]
.Этот элемент имеет два поля: Social Media Source Name
, поле Droplink;и Social Media Link
, ссылка (я знаю, что это слишком сложно, я не создавал это).
Элемент droplink имеет два поля: Social Media Source Name
и Social Media Source Css Class
Итак, в XSL мне нужно получить все дочерние элементы определенного корневого элемента;для каждого элемента получите поле Link и элемент Droplink и получите два поля из элемента Droplink
Итак, я не уверен, как отобразить это в XSL.Вот где я начал, но выдает ошибку, и я не уверен, как отлаживать XSL.Вот что у меня есть:
<xsl:variable name="item" select="sc:item(sc:fld('__display name'), $socialShareLinks)" />
<xsl:for-each select="sc:CHILDREN??">
<xsl:variable name="socialItem" select="sc:item(.,.)"/>
<xsl:varible name="linkedItem" select="sc:field('Social Media Link Source', $socialItem)"/>
<xsl:varible name="itemClass" select="sc:field('Social Media Source Css Class', $linkedItem"/>
<li class="$itemClass">
<sc:link field="Social Media Link"></sc:link>
</li>
</xsl:for-each>
Может кто-нибудь помочь мне разобраться, как правильно написать это?1) Я не знаю, как получить ск: дети.2) Visual Studio говорит мне, что я не могу иметь переменную xsl: внутри xsl: for-each, но я не уверен, что должен делать вместо этого.3) Любые другие вещи, которые я ошибся.
РЕДАКТИРОВАТЬ: я обновил свой код следующим образом:
<xsl:for-each select="$socialShareRoot/item">
<li class="float-left">
<xsl:variable name="itemUrl" select="sc:fld('Social Media Link', ., 'Url')"/>
<xsl:variable name="LinkedItemId" select="sc:fld('Social Media Link Source', ., 'id')" />
<xsl:variable name="SocialShareItem" select="sc:item($LinkedItemId, . )" />
<xsl:variable name="itemClass" select="sc:fld('Social Media Source Css Class', $SocialShareItem)"/>
<xsl:variable name="itemName" select="sc:fld('Social Media Source Name', $SocialShareItem)"/>
<a target="_blank">
<xsl:attribute name="class">
<xsl:value-of select="$itemClass"/>
</xsl:attribute>
<xsl:attribute name="href">
<xsl:value-of select="$itemUrl"/>
</xsl:attribute>
<xsl:value-of select="$LinkedItemId"/>
</a>
</li>
</xsl:for-each>
Я получаю пустое значение для каждого существующего элемента в Sitecore, но не получаю никаких значений для класса, имени илиURL