如果满足条件,如何退出 XSL 中的“for-each”循环?
例如假设我希望 XSL 显示具有(2 间卧室且租金
<xsl:for-each select="//apartment/apartment_details">
<xsl:if test="bedrooms=$bedrooms and rent <= $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(使用前将#替换为@)