Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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 XSLT:XPath 1.0子字符串_Sharepoint_Xslt_Xpath_Sharepoint 2013 - Fatal编程技术网

Sharepoint XSLT:XPath 1.0子字符串

Sharepoint XSLT:XPath 1.0子字符串,sharepoint,xslt,xpath,sharepoint-2013,Sharepoint,Xslt,Xpath,Sharepoint 2013,在XSLT SharePoint 2013中使用XPath 1.0,我有两个目标: 要从中提取“库名称”,请执行以下操作: /path/to/library/can/be/any/length/library Name/file.extension 从以下文件中提取文档idQYZM2HKWQCSZ-3-3: http://sharepoint01/sites/temp/_layouts/15/DocIdRedir.aspx?ID=QYZM2HKWQCSZ-3-3,QYZM2HKWQCSZ-3-3

在XSLT SharePoint 2013中使用XPath 1.0,我有两个目标:

  • 要从中提取“库名称”,请执行以下操作:
    /path/to/library/can/be/any/length/library Name/file.extension
  • 从以下文件中提取文档idQYZM2HKWQCSZ-3-3

    http://sharepoint01/sites/temp/_layouts/15/DocIdRedir.aspx?ID=QYZM2HKWQCSZ-3-3,QYZM2HKWQCSZ-3-3

  • 如何提取所需的字符串

    OAN,由于某些原因,文档Id列返回资源的完整路径,而不是仅返回Id

    有什么建议吗?如何只获取Id(以避免子字符串预处理)

  • 如果在路径中找不到任何进一步的模式,则在纯XPath 1.0中不可能
  • 似乎模式
    ?ID=
    是固定的,并且ID后面的冒号也是固定的。如果是这样,您可以使用
    子字符串after(子字符串before(,,,'),'?ID=')
    。用选择字符串的XPath表达式替换上下文
  • 对于(1),编写一个递归模板,如下所示。将输入字符串作为参数传递

    (a) 如果
    not(包含($input,'/')、'/')之后的子字符串)
    则返回($input,'/')之前的
    子字符串)

    (b) 否则,进行递归调用,将
    (($input,“/”)后面的子字符串)
    作为参数传递


    (c) 添加一些错误处理逻辑,以确保在输入字符串不包含
    '/'
    时终止

    仅仅给出输入字符串和所需的输出字符串是不够的:一个示例并不构成问题的说明。例如,在(1)中,您可能位于路径的最后一个组件之后,或者位于“长度”部分之后的部分,等等。