SharePoint 内容查询、分类术语库和 XSL 转换

Posted

技术标签:

【中文标题】SharePoint 内容查询、分类术语库和 XSL 转换【英文标题】:SharePoint Content Query, Taxonomy term store and XSL transformation 【发布时间】:2013-10-12 02:23:43 【问题描述】:

我的分类术语库中有如下内容:

+ [Managed Metadata Service]
  + Earth (Group)
    + Continents (Term Set)
      + Europe (Term)
        - Italy (Term)
        - France (Term)
      + Asia (Term)
        - China (Term)
        - India (Term)

我的页面布局中有一个托管元数据列,它接受多个值。

我有以下页面使用此页面布局及其元数据值:

陶瓷(中国) 老虎(中国、印度) 印度教(印度) 贡多拉(意大利) 马卡龙(法国)

在另一个页面 (groupings.aspx) 上,我有一个内容查询 Web 部件。 我想让它显示“亚洲”值,例如:

[+] China
      Ceramics (link to the Ceramics page)
      Tiger    (link to the Tiger page)
[+] India
      Hinduism (link to the Hinduism page)
      Tiger    (link to the Tiger page)

我需要帮助选择过滤器并为内容查询开发 xsl。 ChinaIndia 的展开/折叠会很棒,但没有必要。我可以自己做一个。我只是在 xsl 转换方面没有太多经验。

【问题讨论】:

如果您发布 XML 起点和目标,您可能会从非 SharePoint XSLT 人群中获得有用的响应。 我不知道如何获得那些 tbh 内容查询 webpart 由于 xsl 转换而极难实现。为什么不尝试使用 Sharepoint 对象模型的可视化 webpart 来获取数据? 列允许多个值的事实 - 使事情变得非常复杂。在 XSL 中做到这一点真的很不容易。怎么样创建一个WP继承CQWP,在里面可以修改结果,为这个列包含多个值的每一项分别创建一个结果? 我们做过类似的事情,我们使用 jquery SPServices 来获取库中的所有页面,然后根据标签处理和隔离它们。与此相反的是,如果您在 lib 中有很多页面,那么它会很慢。 【参考方案1】:

我能给你的最好的东西就是使用

<xmp><xsl:copy-of select="*" /></xmp>

这样您就可以看到所有的 xml 响应并正确查询。

分类字段类似于“value#guid”,因此您需要使用替换实现。

最后我强烈建议转移到搜索,搜索内容 WP 可以做任何 CQWP 可以做的事情,而且过滤更容易和动态,你可以使用 html/js 模板而不是 xsl。

如果您担心“在线/实时”结果然后使用继续爬网,对于拥有多达 370 万个项目的场,它可以设置为 1 分钟并且您有在线结果。

【讨论】:

以上是关于SharePoint 内容查询、分类术语库和 XSL 转换的主要内容,如果未能解决你的问题,请参考以下文章

具有多个分类术语的 Drupal 8 实体查询

按分类术语过滤的 Drupal 视图

Sharepoint 在线代码存储库和持续部署

SharePoint 2013 术语和术语集介绍

根据drupal中的其他分类术语加载分类内容

如何通过分类术语从自定义 WordPress MySQL 查询中排除结果