Sitecore XSLHelper.fld 方法未按预期工作
Sitecore XSLHelper.fld Method not working as expected
我在使用 XSLHelper.fld 方法时遇到了一些问题。我有一个非常简单的 XSLT 文件,我试图访问我的 Sitecore 图像项中的子值。
代码示例:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sc="http://www.sitecore.net/sc"
xmlns:dot="http://www.sitecore.net/dot"
exclude-result-prefixes="dot sc">
<!-- output directives -->
<xsl:output method="html" indent="no" encoding="UTF-8" />
<!-- parameters -->
<xsl:param name="lang" select="'en'"/>
<xsl:param name="id" select="''"/>
<xsl:param name="sc_item"/>
<xsl:param name="sc_currentitem"/>
<!-- variables -->
<!-- Uncomment one of the following lines if you need a "home" variable in you code -->
<!--<xsl:variable name="home" select="sc:item('/sitecore/content/home',.)" />-->
<!--<xsl:variable name="home" select="/*/item[@key='content']/item[@key='home']" />-->
<!--<xsl:variable name="home" select="$sc_currentitem/ancestor-or-self::item[@template='site root']" />-->
<!-- entry point -->
<xsl:template match="*">
<xsl:apply-templates select="$sc_item" mode="main"/>
</xsl:template>
<!--==============================================================-->
<!-- main -->
<!--==============================================================-->
<xsl:template match="*" mode="main">
TEST BACKGROUND IMAGE
<br/>
ALT: <br/>
<xsl:value-of select="sc:fld('background',.,'alt')"/>
<br/>
SRC: <br/>
<xsl:value-of select="sc:fld('background',.,'src')"/>
<br/>
Field SRC: <br/>
<xsl:value-of select="sc:field('background',.,'src')"/>
</xsl:template>
</xsl:stylesheet>
当我测试下面的代码时,结果很奇怪,从下面的截图可以看出:
可以清楚的看到alt字段有值,src字段为空。所以我肯定可以访问我的 Sitecore 图像项,但无法访问 src 字段.....
谁能解释一下为什么 src 字段为空?
此致,
漫画编码器
正如我在您的其他问题中所述,图像字段的原始值中不再有 src 属性。如果您在图像字段的属性中修改替代文本,则存在 alt 属性,否则它将退回到媒体库中图像项目的替代文本。
sc:field 方法使用字段渲染器输出完整的 <img>
标记。该方法的第三个参数应该用于附加参数,如宽度和高度或附加属性。它应该被格式化为查询字符串(例如 width=150&height=100
)。它可能只是忽略了您传递的 src
值,因为它无效。
我在使用 XSLHelper.fld 方法时遇到了一些问题。我有一个非常简单的 XSLT 文件,我试图访问我的 Sitecore 图像项中的子值。
代码示例:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sc="http://www.sitecore.net/sc"
xmlns:dot="http://www.sitecore.net/dot"
exclude-result-prefixes="dot sc">
<!-- output directives -->
<xsl:output method="html" indent="no" encoding="UTF-8" />
<!-- parameters -->
<xsl:param name="lang" select="'en'"/>
<xsl:param name="id" select="''"/>
<xsl:param name="sc_item"/>
<xsl:param name="sc_currentitem"/>
<!-- variables -->
<!-- Uncomment one of the following lines if you need a "home" variable in you code -->
<!--<xsl:variable name="home" select="sc:item('/sitecore/content/home',.)" />-->
<!--<xsl:variable name="home" select="/*/item[@key='content']/item[@key='home']" />-->
<!--<xsl:variable name="home" select="$sc_currentitem/ancestor-or-self::item[@template='site root']" />-->
<!-- entry point -->
<xsl:template match="*">
<xsl:apply-templates select="$sc_item" mode="main"/>
</xsl:template>
<!--==============================================================-->
<!-- main -->
<!--==============================================================-->
<xsl:template match="*" mode="main">
TEST BACKGROUND IMAGE
<br/>
ALT: <br/>
<xsl:value-of select="sc:fld('background',.,'alt')"/>
<br/>
SRC: <br/>
<xsl:value-of select="sc:fld('background',.,'src')"/>
<br/>
Field SRC: <br/>
<xsl:value-of select="sc:field('background',.,'src')"/>
</xsl:template>
</xsl:stylesheet>
当我测试下面的代码时,结果很奇怪,从下面的截图可以看出:
可以清楚的看到alt字段有值,src字段为空。所以我肯定可以访问我的 Sitecore 图像项,但无法访问 src 字段.....
谁能解释一下为什么 src 字段为空?
此致,
漫画编码器
正如我在您的其他问题中所述,图像字段的原始值中不再有 src 属性。如果您在图像字段的属性中修改替代文本,则存在 alt 属性,否则它将退回到媒体库中图像项目的替代文本。
sc:field 方法使用字段渲染器输出完整的 <img>
标记。该方法的第三个参数应该用于附加参数,如宽度和高度或附加属性。它应该被格式化为查询字符串(例如 width=150&height=100
)。它可能只是忽略了您传递的 src
值,因为它无效。