دستور choose

<xsl:choose>

به همراه

<xsl:when> و <xsl:otherwise>

برای ایجاد انتخاب تگ با چندین شرط به کار می رود

اگر شما با زبانهای برنامه نویسی مثل vb اشنا باشید می توان گفت که این دستورات مثل

select case , case else می باشد

خود دستور select case در اینجا می شود choose

شما به تعداد حالتهای مورد نظرتان case می گذارید که در اینجا ما به جای Case عبارت when را داریم و به جای case else در اینجا ما otherwise را داریم

اگر با زبان php اشنایی دارید می توان دستورات choose را مثل دستور switch و دستور when را مثل مجموعه case ها و دستور otherwise را مثل دستور default در نظر گرفت

که when ها و otherwise باید درون دستور choose باشند

 

روش استفاده از این دستور به صورت زیر است

tr

مثال

tri

deu

بیایید خطهای بین for-each را بررسی کنیم

دستورات زیر درون حلقه for-each هستند و مدام تکرار می شوند

aw

ابتدا یک سطر جدید به جدول افزوده می شود

سپس مقدار تگ title بعدی در سلول این سطر قرار می گیرد

دستور شرطی choose اجرا می شود
دستور شرطی choose دارای دستورات زیر است:

dy

دستور when می گوید اگر مقدار تگ price ای که در مسیر تگ titile فعلی است بیشتر از ۱۰ بود انگاه در سطر جاری رنگ زمینه سلول دومی صورتی شود و محتوای تگ artist ای که با تگ titile هم مجموعه است یعنی با هم در یک تگ cd هستند در ان نشان داده شود

در غیر این صورت

فقط مقدار تگ artist در سلول قرار گیرد و رنگ زمینه سلول تغییر نکند

مثال دیگر
در اینجا ما از دو تا دستور when استفاده می کنیم

xs

of

فقط قسمت choose را بررسی می کنم بقیه موارد قبلا در فصلهای قبلی کاملا توضیح داده شده است

when

دستور when اول :

cs

می گوید اگر مقدار محتوای تگ price که در مجموعه تگ titile قرار دارد بیشتر از ۱۰ بود انگاه سلول ایجاد شده رنگ زمینه به شماره ff00ff داشته باشد و مقدار محتوای تگ artist که با تگ price ان هم خانواده است در این سلول نشان داده شود

مشخص است که اگر شرط when برقرار نبود ای دستور اجرا نخواهد شد

دستور when دوم

<xsl:when test=”price &gt; 9″>
<td bgcolor=”#cccccc”>
<xsl:value-of select=”artist”/></td>
</xsl:when>
می گوید اگر مقدار محتوای تگ price که در مجموعه تگ titile قرار دارد بیشتر از ۹ بود انگاه سلول ایجاد شده رنگ زمینه به شماره cccccc داشته باشد و مقدار محتوای تگ artist که با تگ price ان هم خانواده است در این سلول نشان داده شود
مشخص است که اگر شرط when برقرار نبود ای دستور اجرا نخواهد شد

در غیر این صورت یعنی اگر هیچکدام از when ها درست نبودند دستورات دورن otherwise اجرا می شود

 

<xsl:otherwise>
<td><xsl:value-of select=”artist”/></td>
</xsl:otherwise>
و سلول بدون اینکه زمینه اش رنگی شود مقدار محتوای تگ artist را نمایش می دهد