如何从URL获取文档库名称

时间:2010-06-03 16:46:11

标签: sharepoint xslt document-library

如何从URL cqwp获取文档库名称。例如,

http:///sites/site1/DocLib/Forms/AllItems.aspx

我知道xsl

有子串函数
<xsl:param name="DocLibName"> 
  select=substring(url) or whatever the code should be
</xsl:param>

3 个答案:

答案 0 :(得分:1)

以下代码将根据您发布的URL(或文档库中的任何视图)为您提供文档库的名称。

String pattern = ".*/(?<listStaticName>.+)/[^\\.]+\\.aspx";
Regex regex = new Regex(pattern);
MatchCollection matches = regex.Matches(DefaultViewUrl);
String listStaticName = matches[0].Groups["listStaticName"].ToString();

您可以使用this article中描述的方法从XSL调用.NET代码

答案 1 :(得分:0)

使用标准的substring(string, int, int)函数不会让你走得太远,因为我希望文档库名称的长度是未知的。

但是,您可以使用两个功能,substring-after(string, string)substring-before(string, string)。只要您的站点名称不是“表单”,就可以使用substring-before([URL], "/Forms")检索部分字符串。对于其他...如果你没有立即访问该网站的名称仍然会很麻烦,但即使删除该选项,它仍然比URL长度的复杂计算容易得多。你基本上必须不断执行substring-after([string], "/"),直到弹出最后一个斜线。

答案 2 :(得分:0)

  1. 一些好的链接。
  2. http://msdn.microsoft.com/en-us/library/dd583143(office.11).aspx

    1. 添加这两行
    2. <xsl:variable name="DocLibName" select="substring-before(substring-after($PageUrl, '/Forms/'), '/')" />

      <xsl:param name="PageUrl"/>

      1. 设置VIEWFLAG = 1(它应该在属性窗口中)

      2. 找到此行并修改是否要过滤webpart列表

      3. <xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" />

        将其更改为以下

        <xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[(@CustomerNo=$DocLibName)]"/>

        您可以使用它来显示

        <xsl:value-of select="$DocLibName"> <br/>

        <xsl:value-of select="$PageUrl"/><br/>

相关问题