با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته به بررسی عنصر value-of پرداختیم و آموختیم که عنصر <xsl: value-of> برای استخراج ارزش گره انتخاب شده مورد استفاده قرار می گیرد. بنابرین می توان از عنصر <xsl: value-of> برای استخراج ارزش یک عنصر XML و اضافه کردن آن به جریان خروجی انتقال استفاده کرد. در ادامه این سری آموزشی و در ادامه مبحث عناصر مهم در XSLT، آموزش کار با عنصر for-each در XSLT را به علاقمندان این دوره ارائه می نماییم.
عنصر <xsl: for-every> به شما اجازه می دهد که در XSLT حلقه ایجاد نمایید یا اصطلاحاً به looping بپردازید.
در عنصر <XSL <xsl: for-every برای انتخاب هر عنصر XML یک مجموعه گره مشخص می تواند مورد استفاده قرار گیرد:
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 | <?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> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> |
مقدار select attribute عبارت XPath است.
در مثال بالا select attribute، شامل عبارت XPath است. یک عبارت XPath مانند navigating یک فایل سیستم کار می کند؛ یعنی یک اسلش رو به جلو (/) subdirectories را انتخاب می کند.
همچنین می توان خروجی را از فایل XML با افزودن یک criterion به select attribute در عنصر <xsl: for-every> فیلتر اضافه کرد.
<xsl:for-each select=”catalog/cd[artist=’Bob Dylan’]”>
اپراتور های Legal filter عبارتند از
بیایید نگاهی به XSL style sheet تنظیم شده زیر بی اندازیم:
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 | <?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[artist='Bob Dylan']"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> |
در این جلسه با آموزش کار با عنصر for-each در XSLT همراه شما بودیم.
در جلسه بعدی شما را به آشنایی با عنصر sort دعوت می کنیم.
با پی وی لرن همراه باشید.