choose
अनेक शर्तों के लिए परीक्षण और केवल जब एक (या एक डिफ़ॉल्ट मामले) से मेल खाता है लागू करने के लिए अनुमति देता है। if
के साथ आप भी परीक्षण कर सकते हैं, लेकिन उन्हें स्वतंत्र रूप से परीक्षण किया जाता है और प्रत्येक मिलान मामले में आउटपुट होगा।
जोड़ा जा रहा है और अधिक जानकारी के
choose
आप एक से अधिक मामलों के लिए परीक्षण करने के लिए और केवल मामले में उत्पादन की स्थिति है कि मैच से एक, या कुछ डिफ़ॉल्ट उत्पादन उत्पन्न उत्पन्न की अनुमति देता है (खेद बंद भीड़ था)। उदाहरण के लिए:
<xsl:choose>
<xsl:when test='@foo=1'><!-- do something when @foo is 1--></xsl:when>
<xsl:when test='@foo=2'><!-- do something when @foo is 2--></xsl:when>
<xsl:when test='@foo=3'><!-- do something when @foo is 3--></xsl:when>
<xsl:otherwise><!-- this is the default case, when @foo is neither 1, 2 or 3--></xsl:otherwise>
</xsl:choose>
आप "शाखाओं" की एक देख सकते हैं @foo
के मूल्य के आधार ले जाया जाएगा।
if
साथ
, यह एक एकल परीक्षण है और कहा कि परीक्षण के परिणाम पर उत्पादन उत्पन्न:
<xsl:if test='@foo=1'><!-- do this if @foo is 1--></xsl:if>
<xsl:if test='@foo=2'><!-- do this if @foo is 2--></xsl:if>
<xsl:if test='@foo=3'><!-- do this if @foo is 3--></xsl:if>
जटिलता यहाँ विफलता मामले है - क्या होता है जब @foo
1,2 या 3 है न? यह लापता मामला choose
द्वारा अच्छी तरह से संभाला जाता है - यानी डिफ़ॉल्ट कार्रवाई करने की क्षमता है।
XSL भी "और" है कि आप सबसे अधिक अन्य भाषाओं में मिल जाए, कि आप एक वैकल्पिक कार्रवाई if
परीक्षण असफल चाहिए प्रदान करने के लिए अनुमति देता है का अभाव है -, और एक एकल when
के साथ एक choose
और otherwise
आप इस के आसपास पाने के लिए अनुमति देता है, लेकिन ऊपर मेरे उदाहरण में, कि (प्रदर्शित करने के लिए आप यह कर क्यों नहीं होता ..) भयानक होगा
<xsl:choose>
<xsl:when test='@foo=1'><!-- do something when @foo is 1--></xsl:when>
<xsl:otherwise> <!-- else -->
<xsl:choose>
<xsl:when test='@foo=2'><!-- do something when @foo is 2--></xsl:when>
<xsl:otherwise> <!-- else -->
<xsl:choose>
<xsl:when test='@foo=2'><!-- do something when @foo is 2--></xsl:when>
<xsl:otherwise><!-- this is the case, when @foo is neither 1, 2 or 3--></xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
और स्पष्टीकरण की आवश्यकता है। –