واضح آرشیو وب فارسی:راسخون:
استفاده از XSLT در برنامه های وب (2) تغيير لی اوت ، استفاده از چندين تمپليت ، حلقه های تکرار استفاده از XSL دارای مزايای متعددی است :• امکان تغيير موقعيت عناصر ( لی اوت صفحه ) در فايل XSL ، بدون نياز به تغيير داده ، فراهم می گردد . • امکان انجام عمليات منطقی بر روی داده نظير پردازش های تکراری و شرطی ، فراهم می گردد. در ادامه به تشريح مزايای فوق ، خواهيم پرداخت .تغيير Layout يکی از پتانسيل های بسيار مهم XSL ، قابليت تغيير Layout نحوه نمايش عناصر با توجه به اهداف مورد نظر می باشد . در فايل های HTML با توجه به اينکه داده و نحوه نمايش آنان ، در يک فايل مشخص می گردد، همواره يک خروجی يکسان را شاهد خواهيم بود . همزمان با ارسال اطلاعات ، تگ های لازم که مسئوليت تبين رفتار مرورگر به منظور نحوه نمايش عناصر را برعهده دارند ، نيز ارسال و مرورگر بلافاصله پس از تفسيرآنان ، واکنش های کاملا" از قبل تعريف شده ای را به منظور نمايش اطلاعات ، انجام خواهد داد . در صورتيکه قصد مشاهده ، دو layout مجزاء از يک فايل HTML را داشته باشيم ، می بايست از دو فايل جداگانه که هرکدام اهداف خاص خود را دنبال خواهند نمود ، استفاده گردد. در فايل های XML با توجه به اينکه داده از نمايش تفکيک شده است ، ،می توان دستورالعمل های لازم به منظور نمايش اطلاعات را ايجاد و پس از ذخيره آنان در يک فايل XSL ( با توجه به Layout مورد نظر) ، داده های موجود در يک فايل XML را با حالات متفاوت ، مشاهده نمود. با بکارگيری صحيح عناصر در XSL ، امکان تغيير Layout فراهم می گردد. مثال يک : هدف : نمايش اطلاعات موجود در فايل XML حاوی اطلاعات دانشجويان با يک فرمت خاص ( جدول ) .توضيحات : در مثال فوق ، از فايل XML نمونه ( موجود در بخش اول مقاله ) بهمراه فايل XSL زير استفاده می شود . XSLT File <?xml version="1.0" encoding="UTF-8" ?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/Students/Student"><html><body Dir="rtl"><H3 Align="Center"> ليست دانشجويان</H3><table border="1" bgcolor="White" dir="rtl" Align="Center"><tr><th bgcolor="#336699"><font size="3" color="white"> نام</font> </th><th bgcolor="#336699"><font size="3" color="white"> نام خانوادگی</font> </th><th bgcolor="#336699"><font size="3" color="white"> رشته</font> </th></tr><tr><td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="Fname"/></font></td><td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="Lname"/></font></td><td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="Study"/></font></td></tr></table></body></html></xsl:template></xsl:stylesheet>خروجی : پس از مقداردهی خصلت های DocumentSource و TransformSource کنترل سرويس دهنده XML ، به ترتيب به فايل های XML و XSL ، خروجی زير نمايش داده می شود .
استفاده از چندين تمپليت ها يک فايل XSL ، می تواند شامل چندين تمپليت باشد يک تمپليت XSL برای هر يک از گره های XML که قصد ارائه فرمت مشابه و يکسانی را برای آنان داريم ، بکار گرفته می شود . .در فايل XML مربوط به دانشجويان می توان (بعنوان نمونه ) ، دو تمپليت را ايجاد که هر يک مسئوليت تعريف فرمت نحوه نمايش بخش خاصی از فايل XML را بر عهده خواهند گرفت . • تمپليت اصلی ، مسئوليت تعريف فرمت مناسب به منظور نمايش Fname,Lname و Study ( سه عنصر از فايل XML دانشجويان ) را بر عهده داشته و عملا" نقطه شروع کار را مشخص می نمايد(اجرای XSL از تمپليت فوق ، آغاز می گردد) .• تمپليت Address ، مسئوليت تعريف فرمت مناسب به منظور نمايش آدرس دانشجويان را برعهده دارد . با استفاده از عنصر xsl:apply-template ، می توان يک تمپليت را در ارتباط با يک گره بکار گرفت . XSL زير ، نحوه استفاده از دو تمپليت و ارتباط بين هر يک از آنان را نشان می دهد . ( نحوه ارتباط دو تمپليت با رنگ آبی مشخص شده است ) .XSLT File with two template<?xml version="1.0" encoding="UTF-8" ?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/Students/Student"><html><body Dir="rtl"><H3 Align="Center"> ليست دانشجويان</H3><table border="1" bgcolor="ٌWhite" dir="rtl" Align="Center"><tr><th bgcolor="#336699"><font size="3" color="white"> نام</font> </th><th bgcolor="#336699"><font size="3" color="white"> نام خانوادگی</font> </th><th bgcolor="#336699"><font size="3" color="white"> رشته</font> </th></tr><tr><td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="Fname"/></font></td><td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="Lname"/></font></td><td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="Study"/></font></td></tr><xsl:apply-templates select="/Students/Student/Address" /></table></body></html></xsl:template><xsl:template match="/Students/Student/Address"> <tr><td bgcolor="Green" width="100%" colspan="3" align="center" dir="rtl"> <font size="3" color="white"> آدرس دانشجو</font> </td></tr><tr><td bgcolor="White" width="100%" colspan="3" dir="rtl"> <ul Align="Right"><li><B>آدرس منزل</B> :<xsl:value-of select="/Students/Student/Address/Home" /></li><br/><li><B>آدرس محل کار</B> :<xsl:value-of select="/Students/Student/Address/Office" /></li><br/><li><B>آدرس پست الکترونيکی</B> :<xsl:value-of select="/Students/Student/Address/Email" /></li><br/></ul></td></tr></xsl:template> </xsl:stylesheet>مثال دو : هدف : استفاده از دو تمپليت در فايل XSL به منظور نمايش اطلاعات دانشجويان توضيحات : دراين مثال از فايل XML زير و فايل XSL فوق ، استفاده شده است . Student XML file<?xml version="1.0" encoding="utf-8" ?><Students><Student><Gender>مرد</Gender><Fname>محمدرضا</Fname><Lname>ايرانی</Lname><Study>فنآوریاطلاعات و ارتباطات</Study><Address><Home>هموارهسبز</Home><Office>شاداب</Office><Tel><TelHome></TelHome><TelOffice></TelOffice></Tel><Email>[email protected]</Email></Address><Marks><Quiz><Q1></Q1><Q2></Q2><Q3></Q3></Quiz><MidTerm></MidTerm><Final></Final></Marks></Student></Students>خروجی : پس از مقداردهی خصلت های DocumentSource و TransformSource کنترل سرويس دهنده XML ، به ترتيب به فايل های XML و XSL ، خروجی زير نمايش داده می شود .
تمپليـت استفاده شده در فايل XSL ، صرفا" يک گره را پردازش نموده و در صورت نياز به تکرار عمليات ( نمايش اطلاعات چندين دانشجو ) ، می بايست از عناصر تکرار XSL استفاده گردد.تکرار عملياتبه منظور اعمال فرمت مورد نظر در ارتباط با چندين عنصر در يک فايل XML نظير يک ليست و يا آيتم های يک جدول ، از xsl:for-each استفاده می شود. عنصر فوق ، با ايجاد يک حلقه تکرار ، گره های مورد نظر را انتخاب و در ادامه محتوی XSL در ارتباط با هر يک از گره ها ، بکار گرفته می شود . Repeating elements<xsl : for-each select = "/Students/Student" ><xsl : value-of select="Fname" /><br/></xsl:for-each>مثال سه : هدف : استفاده از عنصر xsl:for-each به منظور نمايش اطلاعات چندين دانشجو توضيحات : درمثال فوق ، از فايل XSL زير استفاده شده است ( فايل XML حاوی اطلاعات دو دانشجو می باشد ) . XSLT File <?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 Dir="rtl"><H3 Align="Center"> ليست دانشجويان</H3><table border="1" bgcolor="ٌWhite" dir="rtl" Align="Center"><tr><th bgcolor="#336699"><font size="3" color="white"> نام</font> </th><th bgcolor="#336699"><font size="3" color="white"> نام خانوادگی</font> </th><th bgcolor="#336699"><font size="3" color="white"> رشته</font> </th></tr><xsl:for-each select="/Students/Student" ><tr><td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="Fname"/></font></td><td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="Lname"/></font></td><td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="Study"/></font></td></tr></xsl:for-each></table></body></html></xsl:template></xsl:stylesheet>خروجی : پس از مقداردهی خصلت های DocumentSource و TransformSource کنترل سرويس دهنده XML ، به ترتيب به فايل های XML و XSL ، خروجی زير نمايش داده می شود .
ادامه دارد....منبع:http://article.mjsoft.ir/خ
این صفحه را در گوگل محبوب کنید
[ارسال شده از: راسخون]
[تعداد بازديد از اين مطلب: 397]