1

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

  1. 要从以下位置提取“库名称”:

    /path/to/library/could/be/any/length/Library Name/file.extension

  2. 从以下文件中提取文档 id QYZM2HKWQCSZ-3-3

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

如何提取所需的字符串?

OAN,出于某种原因,Document Id 列返回资源的完整路径,而不是仅返回 Id。

任何建议,如何仅获取 Id(以避免子字符串预处理)?

4

2 回答 2

2

对于 (1),写一个递归模板如下。将输入字符串作为参数传递。

(a) 如果not(contains(substring-after($input, '/'), '/'))然后返回substring-before($input, '/')

(substring-after($input, '/'))(b) 否则,进行作为参数传递的递归调用。

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

于 2013-08-05T10:16:18.443 回答
1
  1. 如果在路径中找不到任何其他模式,则在普通 XPath 1.0 中是不可能的。
  2. 似乎模式?ID=是固定的,ID 后面的冒号也是固定的。如果是这样,您可以使用substring-after(substring-before(., ','), '?ID='). .用一些选择字符串的 XPath 表达式替换上下文。
于 2013-08-05T09:27:32.750 回答