XSL:对于每个-如何添加AND条件



我有一个使用列表作为数据源的SharePoint DVWP。在这个列表中,我有两列-LinkSectionSubSection

在该DVWP中;章节";对该列表中的项目进行分组。到目前为止,每个部分只通过一列进行过滤-请参阅一个部分的示例:

<xsl:template name="dvt_1">
<xsl:variable name="dvt_StyleName">Table</xsl:variable>
<xsl:variable name="Rows1" select="/dsQueryResponse/Rows/Row[contains(@LinkSection,'Training')]"/>
<div class="page_home" style=" height: 120px; overflow: hidden; z-index: 0;border:1px solid #CCCCCC;">
<div class="cat_heading" style="padding: 5px 10px; text-align: left; ">
<h2 style="font-weight:bold">
<a title="Section 1">Section 1</a>
</h2>
</div>
<div class="cat_imglinks" style=" height: 70px; overflow: hidden;">
<div class="cat_img" style="text-align: left; vertical-align: middle;">
<a> 
<span style="width: 78%; float: left;">Section 1 Text</span>
</a>    
</div> 
<div class="panel cat_links">
<ul>                                
<xsl:for-each select="$Rows1">          
<li><a href="{@Link}" title="{@Title}">
<xsl:value-of select="@Title" disable-output-escaping="yes"/></a></li>          
</xsl:for-each>
</ul>
</div>
</div>
</div>                  
</xsl:template>

我现在有一个按两列筛选的请求。我对XSLT没有太多的经验,所以我正在尝试我在论坛上看到的东西,但运气并不好。

因此,我想为两行创建一个AND过滤器——请参阅下面我尝试过的方法之一。我尝试过使用"|"运算符,但这似乎显示了符合$Rows1结果的所有项。

<xsl:template name="dvt_1">
<xsl:variable name="dvt_StyleName">Table</xsl:variable>
<xsl:variable name="Rows1" select="/dsQueryResponse/Rows/Row[contains(@LinkSection,'Training')]"/>
<xsl:variable name="Rows2" select="/dsQueryResponse/Rows/Row[contains(@SubSection,'Education')]"/>
<div class="page_home" style=" height: 120px; overflow: hidden; z-index: 0;border:1px solid #CCCCCC;">
<div class="cat_heading" style="padding: 5px 10px; text-align: left; ">
<h2 style="font-weight:bold">
<a title="Section 1">Section 1</a>
</h2>
</div>
<div class="cat_imglinks" style=" height: 70px; overflow: hidden;">
<div class="cat_img" style="text-align: left; vertical-align: middle;">
<a> 
<span style="width: 78%; float: left;">Section 1 Text</span>
</a>    
</div> 
<div class="panel cat_links">
<ul>                                
<xsl:for-each select="$Rows1 | $Rows2">         
<li><a href="{@Link}" title="{@Title}">
<xsl:value-of select="@Title" disable-output-escaping="yes"/></a></li>          
</xsl:for-each>
</ul>
</div>
</div>
</div>                  
</xsl:template>

如有任何帮助,我们将不胜感激。谢谢

您目前有两个变量:

<xsl:variable name="Rows1" select="/dsQueryResponse/Rows/Row[contains(@LinkSection,'Training')]"/>
<xsl:variable name="Rows2" select="/dsQueryResponse/Rows/Row[contains(@SubSection,'Education')]"/>

不添加"Rows2",只需将"Rows1"更改为:

<xsl:variable name="Rows1" select="/dsQueryResponse/Rows/Row[contains(@LinkSection,'Training')][contains(@SubSection,'Education')]"/>

然后将您的for each改回:

<xsl:for-each select="$Rows1">  

相关内容

  • 没有找到相关文章

最新更新