Xslt 1.0 如何覆盖发现搜索结果
我正在处理的存储库的一个要求是在用户界面上有一个Xslt 1.0 如何覆盖发现搜索结果,xslt-1.0,dspace,Xslt 1.0,Dspace,我正在处理的存储库的一个要求是在用户界面上有一个高级搜索选项。由于从DSpace 4开始,如前所述,默认情况下会启用查找分面/过滤搜索和浏览,因此我只在导航中添加一个链接,指向高级搜索链接http://myrepository.org/discover。现在,我的目标是在用户单击“高级搜索”链接时抑制搜索结果 如何覆盖搜索结果,以便在没有查询字符串的情况下(例如,如果用户直接进入/discover页面,并且没有选择面),它将只显示如下图所示的内容,而没有搜索结果和现在显示的项…和分页div 我正
高级搜索
选项。由于从DSpace 4开始,如前所述,默认情况下会启用查找分面/过滤搜索和浏览,因此我只在导航中添加一个链接,指向高级搜索
链接http://myrepository.org/discover
。现在,我的目标是在用户单击“高级搜索”链接时抑制搜索结果
如何覆盖搜索结果,以便在没有查询字符串的情况下(例如,如果用户直接进入/discover
页面,并且没有选择面),它将只显示如下图所示的内容,而没有搜索结果和现在显示的项…
和分页div
我正在使用DSpace 5.3版幻影2主题
这就是我尝试过的:
<xsl:template match="dri:list[@id='aspect.discovery.SimpleSearch.list.search-results-repository']">
<xsl:variable name="query-string" select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='request'][@qualifier='queryString']"/>
<xsl:if test="$query-string!=''">
<xsl:apply-templates />
</xsl:if>
</xsl:template>
无论我是否有查询字符串,上面的代码总是禁止搜索结果
编辑
我在回答中使用的模板匹配有问题。已删除排序选项的样式设置
有人能帮我改进代码,使其不会删除排序选项的样式吗?默认排序选项应如下所示:
我想知道为什么使用模板匹配删除了排序选项的样式。如果我使用
,或
而不是
,它不会返回我想要得到的结果
如有任何建议,将不胜感激。提前感谢。在多次尝试
模板匹配之后,我终于实现了我想要显示的内容。这是我用来实现目标的模板匹配
<xsl:template match="dri:div[@id='aspect.discovery.SimpleSearch.div.search-results']">
<xsl:if test="contains(@pageURLMask,'query') or contains(@pageURLMask,'filter')">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:template>
<xsl:template match="dri:div[@id='aspect.discovery.SimpleSearch.div.search-results']">
<xsl:choose>
<xsl:when test="contains(@pageURLMask,'query') or contains(@pageURLMask,'filter')">
<xsl:apply-templates select="dri:div[@id='aspect.discovery.SimpleSearch.div.masked-page-control']/node()"/>
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="no-search-results"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="no-search-results" match="dri:div[@id='aspect.discovery.SimpleSearch.div.masked-page-control']"/>