جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
استفاده از XSLT در برنامه هاي وب (2)
-(4 Body) 
استفاده از XSLT در برنامه هاي وب (2)
Visitor 435
Category: دنياي فن آوري

تغيير لي اوت ، استفاده از چندين تمپليت ، حلقه هاي تکرار

استفاده از 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>Info@Srco.ir</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
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image