با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته به بررسی و آموزش عنصر if پرداختیم. در این جلسه آموزش کار با عنصر choose در XSLT را به علاقمندان این دوره ارائه می نماییم.
تاکنون با پنج نوع عنصر اساسی در XSLT آشنا شدیم.
عنصر template که از آن برای ساخت templates ها استفاده می گردد.
از عنصر template برای مرتبط ساختن یک template به عنصر XML از match attribute استفاده می شود.
بنارین match attribute می تواند برای تعیین یک template برای کل سند XML استفاده شود.
مقدار یک match attribute در یک عبارت XPath (یعنی match = “/” کل سند را تعریف می کند).
عنصر value–of که آن برای استخراج ارزش گره انتخاب شده استفاده می شود.
عنصر for–each که به شما اجازه می دهد که در XSLT حلقه ایجاد نمایید یا اصطلاحاً به looping بپردازید.
عنصر دیگری که در جلسه پیش به آن پرداختیم عنصر sort بود که بر طبق آموخته های این جلسه آموختیم که در XSLT سعی می شود برای مرتب سازی خروجی از عنصر ها کمک گرفت و خروجی ها را را به کمک این عنصر نظم و ترتیب بخشید.
این عنصر مورد استفاده عنصر sort یا به عبارت بهتر <xsl: sort>> است که به مرتب سازی اطلاعات خروجی کمک می کند.
XSLT نیاز دارد که محتویات فایل XML را مورد بررسی قرار دهد
برای این کار XSLT از یکی دیگر از عنصر های موجودی که دارد بهره می برد.
این عنصر، عنصر عنصر <xsl: if> است که از یک تست شرطی یا conditional test استفاده می کند تا بتواند محتویات یک فایل XML را مورد بررسی قرار دهد.
عنصر <xsl: select> در رابطه با <xsl: when> و <xsl: in other> برای بیان چندین آزمون شرطی یا multiple conditional tests استفاده می شود.
1 2 3 4 5 6 7 8 | <xsl:choose> <xsl:when test="expression"> ... some output ... </xsl:when> <xsl:otherwise> ... some output .... </xsl:otherwise> </xsl:choose> |
برای قرار دادن تست شرطی چندگانه در برابر فایل <XML، <xsl: select>، <xsl: when> و <xsl: in other> را به فایل XSL اضافه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <xsl:choose> <xsl:when test="price > 10"> <td bgcolor="#ff00ff"> <xsl:value-of select="artist"/></td> </xsl:when> <xsl:otherwise> <td><xsl:value-of select="artist"/></td> </xsl:otherwise> </xsl:choose> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> |
کد بالا یک رنگ پس زمینه صورتی را به ستون «هنرمند» اضافه می کند WHEN قیمت CD بالاتر از ۱۰ است.
در اینجا یک مثال دیگر که شامل دو عنصر <xsl: when>است ارائه شده است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <xsl:choose> <xsl:when test="price > 10"> <td bgcolor="#ff00ff"> <xsl:value-of select="artist"/></td> </xsl:when> <xsl:when test="price > 9"> <td bgcolor="#cccccc"> <xsl:value-of select="artist"/></td> </xsl:when> <xsl:otherwise> <td><xsl:value-of select="artist"/></td> </xsl:otherwise> </xsl:choose> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> |
کد بالا یک رنگ پس زمینه صورتی را به ستون «هنرمند» اضافه می کند WHEN قیمت CD بالاتر از ۱۰ و یک رنگ پس زمینه خاکستری WHEN قیمت CD بالاتر از ۹ و کمتر یا برابر ۱۰ است.
در این جلسه با آموزش کار با عنصر choose در XSLT با شما همراه بودیم.
در جلسه بعد به بررسی عنصر Apply خواهیم پرداختیم.
با پی وی لرن همراه باشید.