将SharePoint超链接列输出为URL

时间:2009-06-02 16:16:58

标签: sharepoint xslt

我有一些存储在Sharepoint发布列中的文档URL。当我使用以下内容将信息输出到HTML页面时

<xsl:value-of select="@[ColumnName]" />

ItemStyle.xml中,我在页面中显示[url][document name]。我想将这个显示为URL,任何人都可以帮助使用XSL吗?

6 个答案:

答案 0 :(得分:4)

您可以使用:

<xsl:value-of select="substring-before(@[ColumnName],',')"/>

或任何分隔符。

答案 1 :(得分:3)

谢谢大家,最后我基于post at sguk

找出了以下内容
<xsl:variable name="Doc">
  <xsl:call-template name="OuterTemplate.GetTitle">
    <xsl:with-param name="Title" select="@DocumentLink1"/>
  </xsl:call-template>
</xsl:variable>

使用以下标记代码:

<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中的“超链接或图片”列类型。

答案 2 :(得分:0)

您可以做的另一件事是获取一个正确显示URL的列表(如链接列表),并使用SharePoint Designer将其转换为DataView WebPart。在那里将有适当的XSL进行转换。

答案 3 :(得分:0)

最简单的方法是使用SharePoint设计器:

  • 点击显示“http://link,说明”
  • 的字段
  • 带有&gt;的盒子将出现,单击它,你将得到一个“常见的xsl:值的任务”弹出窗口。
  • 它将具有字段名称和类型,类型设置为“text”。
  • 将类型更改为“超链接”,您将获得一个允许您格式化超链接的框。它将填充所有必需的xsl,但您可以输入自己的文本或删除链接。

答案 4 :(得分:0)

这有希望有所帮助。输入超链接时显示“项目站点”,不显示时显示空格。

        <!--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>

答案 5 :(得分:0)

在SharePoint 2013中,您必须执行一些不同的操作,因为@Url属性不再以逗号分隔。现在有一个.desc子属性@Url。下面是一个如何工作的例子,希望这可以节省其他人一些时间。

  <xsl:template name="dvt_1.rowview">
    <xsl:if test="string-length(@URL) &gt; 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>