Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将SharePoint超链接列输出为URL_Sharepoint_Xslt - Fatal编程技术网

将SharePoint超链接列输出为URL

将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],',')"/> 或者

我在Sharepoint发布列中存储了一些文档URL。当我使用以下命令将信息输出到HTML页面时:

<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) &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>
      
      
      
      这可能有帮助吗?
        <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>