How to obtain document library name from the URL

你。 提交于 2019-12-11 06:07:09

问题


How to obtain document library name from the URL cqwp. For example,

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

I know there is substring function with xsl

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

回答1:


The following code will give you the name of your document library from the URL you posted (or from any view in your document library)

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

You can use the method described in this article to call .NET code from XSL




回答2:


Using the standard substring(string, int, int) function won't get you very far because I expect that the length of the document library name is unknown.

However, there are two functions that you can use in concert, substring-after(string, string) and substring-before(string, string). As long as your site names aren't "Forms", you can retrieve a partial string using substring-before([URL], "/Forms"). For the rest... it'll still be troublesome if you don't have immediate access to the site's name, but even removing that option it's still much easier than complex calculations in URL length. You'd basically have to continually perform substring-after([string], "/") until you pop off the last slash.




回答3:


  1. Some good Links.

http://msdn.microsoft.com/en-us/library/dd583143(office.11).aspx

  1. Add these two line

<xsl:variable name="DocLibName" select="substring-before(substring-after($PageUrl, '/Forms/'), '/')" />

<xsl:param name="PageUrl"/>

  1. set VIEWFLAG=1 (it should be in the properties windows)

  2. Find this line and modify if you want Filter the webpart list

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

Change it to following

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

You can use this to display

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

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



来源:https://stackoverflow.com/questions/2968026/how-to-obtain-document-library-name-from-the-url

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!