XSLT:如果满足条件,如何退出“for-each”循环

2024-03-19

如果满足条件,如何退出 XSL 中的“for-each”循环? 例如假设我希望 XSL 显示具有(2 间卧室且租金

<xsl:for-each select="//apartment/apartment_details">
  <xsl:if test="bedrooms=$bedrooms and rent &lt;= $budget "> 
    <!--display apartment address--> 
  </xsl:if>
</xsl:for-each>

会返回相同的公寓地址两次。即使有多个公寓满足条件,我也只想显示一次公寓地址。

XML 结构:

<apartments>
  <apartment>
    <address>
        <street>....</street>
        <city>....</city>
    </address>
    <apartment_details>
        <bedrooms>2</bedrooms>
        <bathrooms>2</bathrooms>
        <rent>1000</rent>
    </apartment_details>
    <apartment_details>
        <bedrooms>2</bedrooms>
        <bathrooms>1</bathrooms>
        <rent>900</rent>
    </apartment_details>
    ...
  </apartment>
  ...
</apartments>

谢谢。


如果满足条件,如何退出 XSL 中的“for-each”循环?

这不可能。没有任何 XSLT 指令用于退出处理xsl:for-each并继续实施转型。您可以做的是精确指定所选节点应满足的条件.

Use:

<xsl:for-each select=
 "/*/apartment
      [apartment_details[bedrooms=$bedrooms and $budget  >= rent]]">
  <!-- output apartment address here -->  
</xsl:for-each>

此代码显示任何地址apartment它是 XML 文档顶部元素的子元素,并且具有apartment_details孩子,为了谁的孩子bedrooms and rent it is true() that: bedrooms=$bedrooms and $budget >= rent

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSLT:如果满足条件,如何退出“for-each”循环 的相关文章

随机推荐