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>
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)
You can use the method described in this article to call .NET code from XSL
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)
andsubstring-before(string, string)
. As long as your site names aren't "Forms", you can retrieve a partial string usingsubstring-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 performsubstring-after([string], "/")
until you pop off the last slash.http://msdn.microsoft.com/en-us/library/dd583143(office.11).aspx
<xsl:variable name="DocLibName" select="substring-before(substring-after($PageUrl, '/Forms/'), '/')" />
<xsl:param name="PageUrl"/>
set VIEWFLAG=1 (it should be in the properties windows)
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/>