استفاده از XSLT به منظورفرمت دهی خروجی برنامه های وب دات نت New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 دوشنبه  8  خرداد  1396  2017  May  29   Monday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 استفاده از XSLT در برنامه های وب(بخش دوم)

 مديريت وب

8264

6

4

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

استفاده از XSLT در برنامه های وب

استفاده از XSLT در برنامه های وب  ( بخش دوم )
در بخش اول اين مقاله با جايگاه XSLT به منظور فرمت دهی خروجی برنامه های وب آشنا شديم .برای استفاده از XSLT در فرم های وب ، در ابتدا يک کنترل سرويس دهنده XML را بر روی فرم وب مستقر نموده و در ادامه ، با مقداردهی مناسب خصلت های   DocumentSource و  TransformSource ، به  فايل های XML ( روشی بمنظور تشريح ساختار داده بصورت متن ) و XSL (  مسئول ارائه Layout  و منطق لازم  به منظور تبديل داده ذخيره شده در فايل XML )  ، زمينه استفاده از پتانسيل های تکنولوژی XSLT در فرم های وب و در جهت ايجاد فرمت مناسب خروجی ، فراهم می گردد . همانگونه که در بخش اول اين مقاله اشاره گرديد ، استفاده از 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  ، خروجی زير نمايش داده می شود .

در بخش سوم اين مقاله ، به بررسی  نحوه انجام عمليات مرتب سازی و شرطی  ، خواهيم پرداخت .



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382