将SharePoint超链接列输出为URL
我在Sharepoint发布列中存储了一些文档URL。当我使用以下命令将信息输出到HTML页面时:将SharePoint超链接列输出为URL,sharepoint,xslt,Sharepoint,Xslt,我在Sharepoint发布列中存储了一些文档URL。当我使用以下命令将信息输出到HTML页面时: <xsl:value-of select="@[ColumnName]" /> 在ItemStyle.xml中,我在页面中获得[url],[documentname]。我想将其显示为一个URL,任何人都可以帮助使用XSL吗?您可以使用: <xsl:value-of select="substring-before(@[ColumnName],',')"/> 或者
<xsl:value-of select="@[ColumnName]" />
在ItemStyle.xml
中,我在页面中获得[url]
,[documentname]
。我想将其显示为一个URL,任何人都可以帮助使用XSL吗?您可以使用:
<xsl:value-of select="substring-before(@[ColumnName],',')"/>
或者不管分隔符是什么。您可以做的另一件事是获取正确显示URL的列表(如链接列表),并使用SharePoint Designer将其转换为DataView Web部件。在中,将有适当的XSL来进行转换。谢谢大家,最后我根据一个
具有以下标记代码:
<a href="{substring-before($Doc,',')}">
<xsl:value-of select="substring-after($Doc,',')" />
</a>
或者对于图像:
<xsl:variable name="Image">
<xsl:call-template name="OuterTemplate.GetTitle">
<xsl:with-param name="Title" select="@img" />
</xsl:call-template>
</xsl:variable>
带有以下img标签:
<img src="{substring-before($Image,',')}" alt="{substring-after($Image,',')}" />
我把解决方案发回到这里,因为这被证明是非常难以理解的(可能是我的错,因为我没有真正“获取”XSL),但为了防止有人寻找它,这段代码从Sharepoint中的“超链接或图片”列类型输出图像或链接。最简单的方法是使用Sharepoint designer:
- 单击显示“说明”的字段
- 将出现一个带有>的框,单击它,您将获得一个“common xsl:value of tasks”弹出框李>
- 它将具有字段名和类型,类型设置为“text”
- 将类型更改为“超链接”,您将得到一个框,允许您格式化超链接。它已经填充了所有必要的xsl,但是您可以输入自己的文本或删除链接
- 希望这会有所帮助。输入超链接时显示“项目站点”,不输入超链接时显示空格
<!--Project Site--><TD Class="{$IDAAO2UG}">
<xsl:variable name="Field" select="@Project_x0020_Site" />
<xsl:choose>
<xsl:when test="substring-before(@Project_x0020_Site, ', ')=''"><xsl:value-of select="substring-after(@Project_x0020_Site, ', ')" /></xsl:when>
<xsl:otherwise><A HREF="{substring-before(@Project_x0020_Site, ', ')}">
<xsl:choose>
<xsl:when test="substring-after(@Project_x0020_Site, ', ')=''"><xsl:value-of disable-output-escaping="no" select="substring-before(@Project_x0020_Site, ', ')" /></xsl:when>
<xsl:otherwise><xsl:value-of select="substring-after(@Project_x0020_Site, ', ')" /></xsl:otherwise>
</xsl:choose>
</A></xsl:otherwise>
</xsl:choose>
</TD>
在SharePoint 2013中,您必须做一些不同的事情,因为
@Url
属性不再用逗号分隔。现在有了@Url
的.desc
子属性。下面是一个如何工作的例子,希望这能为其他人节省一些时间
<xsl:template name="dvt_1.rowview">
<xsl:if test="string-length(@URL) > 0">
<div class="link-item item">
<a title="{@Comments}" target="_blank" href="{@URL}">
<xsl:value-of select="@URL.desc" />
</a>
</div>
</xsl:if>
</xsl:template>
这可能有帮助吗?
<xsl:template name="dvt_1.rowview">
<xsl:if test="string-length(@URL) > 0">
<div class="link-item item">
<a title="{@Comments}" target="_blank" href="{@URL}">
<xsl:value-of select="@URL.desc" />
</a>
</div>
</xsl:if>
</xsl:template>