تور لحظه آخری
امروز : پنجشنبه ، 29 شهریور 1403    احادیث و روایات:  پیامبر اکرم (ص):هر كس مى خواهد دعايش مستجاب و اندوهش برطرف شود، به تنگدست مهلت دهد.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

تریدینگ ویو

لمینت دندان

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

طراحی کاتالوگ فوری

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

وکیل کرج

خرید تیشرت مردانه

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ابزار دقیق

خرید ریبون

موسسه خیریه

خرید سی پی کالاف

واردات از چین

دستگاه تصفیه آب صنعتی

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

خرید نهال سیب سبز

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

دیوار سبز

irspeedy

درج اگهی ویژه

ماشین سازان

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

شات آف ولو

تله بخار

شیر برقی گاز

شیر برقی گاز

خرید کتاب رمان انگلیسی

زانوبند زاپیامکس

بهترین کف کاذب چوبی

پاد یکبار مصرف

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

بلیط هواپیما

 






آمار وبسایت

 تعداد کل بازدیدها : 1816741275




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

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


واضح آرشیو وب فارسی:راسخون:
استفاده از XSLT در برنامه های وب (3)
استفاده از XSLT در برنامه های وب (3) نحوه انجام عمليات مرتب سازی و ساختارهای تصميم گيری در XSLT    مرتب سازی ( Sorting) مرتب سازی در XSLTبا افزودن يک و يا چندين عنصر فرزند <xsl:Sort> به عنصر <xsl:apply-templates> و يا <xsl:for each> محقق می گردد . گرامر استفاده از عنصر فوق ، بصورت زير است : xsl:sort element syntax<xsl:sort select="Xpath expression" lang ="lang" data-type="text or number" order = "ascending or descending " case-order = "upper-first or lower-first" /> خصلت Select، باعث انتخاب يک عنصر و يا خصلت می گردد . در صورتيکه بيش از يک عنصر <xsl:sort> استفاده گردد ، خروجی در ابتدا بر اساس عنصر و يا خصلت مشخص شده در اولين <xsl:sort> مرتب شده و در صورتيکه پس از مرتب سازی ، موارد تکراری وجود داشته باشد ، موارد موجود توسط عنصر و يا خصلت مشخص شده در دومين <xsl:sort> ، مرتب می گردند . خصلت data-type، مشخص کننده نوع داده ئی است که قصد مرتب سازی آن وجود دارد( عددی و يا حرفی ) . مثلا" در صورتيکه قصد مرتب سازی اعداد 1 ، 10 ، 11، 5 را داشته باشيم ، نوع data-typeمی بايست textدر نظر گرفته شود . در چنين حالتی خروجی بصورت : 5 ، 11، 10 ، 1 خواهد بود . در صورتيکه مرتب سازی بصورت عددی انجام شود ، مقدار خصلت data-typeمی بايست numberدر نظر گرفته شود . در چنين حالتی نتيجه عمليات مرتب سازی بصورت 11 ، 10 ، 5 ، 1 می باشد . خصلت data-typeدارای مقدار پيش فرض ، textمی باشد. خصلت order، پارامتر صعودی و يا نزولی فرآيند مرتب سازی را مشخص می نمايد. مقدار پيش فرض اين خصلت ascendingمی باشد . خصلت case-order، اولويت حروف را مشخص می نمايد (حروف بزرگ و يا کوچک ). مثلا"، در صورتيکه برای خصلت case-orderمقدار upper-firstدر نظر گرفته شده باشد و قصد مرتب سازی داده هائی نظير : A B a bرا داشته باشيم ، نتايج بصورت : A a B bخواهد بود . در صورتيکه مقدار خصلت فوق ، lower-firstدر نظر گرفته شود ، نتيجه عمليات مرتب سازی بصورت : a A b Bخواهد بود. مقدار پيش فرض خصلت فوق بستگی به خصلت langداشته که زبان سند مورد نظر را مشخص می نمايد. زمانيکه ، برای خصلت lang، مقدار enدر نظر گرفته شود ، خصلت case-orderدارای مقدار پيش فرض، upper-firstاست . مثال يک : هدف : استفاده از عنصر xsl:sortبه منظور مرتب سازی مشخصات دانشجويان بر اساس نام خانوادگی توضيحات : درمثال فوق ، از فايل XMLزير استفاده شده است ( فايل XMLحاوی نام و نام خانوادگی پنج دانشجو می باشد ) . Student XML file<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?> <Students> <name> <first> علی</first> <last> رضائی</last> </name> <name> <first> خسرو</first> <last> ايرانی</last> </name> <name> <first>حسين</first> <last> ياوری</last> </name> <name> <first>محمد رضا</first> <last> خسروی</last> </name> <name> <first> پيمان</first> <last>دوستی</last> </name> </Students> فايل XSLاستفاده شده برای مثال يک : Student XSL file for sortting <?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> </tr> <xsl:for-each select="Students/name"> <xsl:sort select="last"/> <tr> <td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="first"/></font></td> <td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="last"/></font></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> خروجی : پس از مقداردهی خصلت های DocumentSourceو TransformSourceکنترل سرويس دهنده XML، به ترتيب به فايل های XMLو XSL، خروجی زير نمايش داده می شود .

ساختار تصميم گيریدر زمان ايجاد يک StyleSheet،در برخی حالات نيازمند اتخاذ تصميم در رابطه با نحوه نمايش نتايج می باشيم . XSLTدارای عناصری است که با استفاده از آنان می توان کنترل روند پردازش را در Stylesheetانجام داد. هر زبان برنامه نويسی امکان اتخاذ تصميم را از طريق کد نوشته شده در اختيار برنامه نويسان قرار می دهد . XSLTاز اين قاعده مستثنی نبوده و امکان تصميم گيری بر اساس شرايط موجود را با استفاده از دو عنصر <xsl:if> و <xsl:choose> فراهم می نمايد . گرامر عمومی دو عنصر فوق، بصورت زير می باشد : xsl:if element syntax<xsl:if test="Boolean expression" xsl:choose element syntax<xsl:choose> <xsl:when test="Boolean expression" > <xsl:when test="Boolean expression" > <xsl:otherwise> </xsl:choose> برای هر دو عنصر <xsl:if> و <xsl:choose> ، عبارت منطقی ( Boolean expression> يک عبارت XPathبوده که به يک مقدار منطقی تبديل خواهد شد.عبارت XPathبر اساس قوانين زير به يک عبارت منطقی تبديل می گردد : در صورتيکه مقدار عددی بوده و ارزش آن صفر باشد ، مقدار Falseدر نظرگرفته خواهدشد.برای هر مقدار غيرصفر( مثبت و يا منفی ) ، مقدار Trueدر نظر گرفته می شود . در صورتيکه مقدار يک رشته باشد و طول آن بيش از صفر باشد ، مقدار Trueدر نظر گرفته خواهد شد . در صورتيکه مقدار يک مجموعه گره باشد و مقدار آن غيرتهی باشد ، مقدار Trueدر نظر گرفته خواهد شد . هر نوع ديگر اشياء بر اساس نوع شی به يک مقدار منطقی تبديل خواهند شد . مثلا" عبارت : < "xsl:if test = "name> ، در صورتيکه يک عنصر با نام <name> غيرتهی وجود داشته (عضوء context node) ، مقدار Trueو در غير اينصورت مقدار Falseدر نظر گرفته خواهد شد. عنصر <xsl:if> ، ساده ترين ساختار تصميم گيری ارائه شده در XSLTمی باشد. عنصر فوق ، مقدار عبارت را بررسی ( ارائه شده توسط خصلت test) و در صورتيکه مقدار آن Trueباشد ، محتويات عنصر <xsl:if> ، بررسی و اجراء خواهند شد . xsl:if element Example<xsl:if test="name" > نام مورد نظر پيداگرديد</xsl:if> در مثال فوق ، در صورتيکه عنصر <name> بعنوان فرزندی از context nodeوجود داشته باشد ، عبارت " نام مورد نظر پيدا گرديد " ، نمايش داده می شود. عنصر <xsl:choose> ، نسبت به <xsl:if> امکانات بيشتری را بمنظور اتخاذ تصميم ارائه می نمايد . ساختار فوق، امکان تصميم گيری پيجيده تری را فراهم می نمايد.در عنصر فوق ، می توان از يک گزينه "پيش فرض " ، نيز استفاده نمود . xsl:choose Example : <xsl:choose> <xsl:when test="salary[number(.) &gt; 2000]" > يک عدد بزرگ</xsl:when> <xsl:when test="salary[number(.) &gt; 1000]" > يک عدد متوسط</xsl:when> <xsl:otherwise> يک عدد کوچک</xsl:otherwise> </xsl:choose> در صورتيکه عنصر <number> ، شامل يک مقدار عددی بيش از 2000 باشد ، عبارت : "يک عدد بزرگ " در خروجی نمايش داده خواهد شد . در صورتيکه مقدار عنصر فوق بيش از 1000 باشد .، عبارت : "يک عدد متوسط " در خروجی نمايش داده می شود. در ساير حالات ، عبارت : " يک عدد کوچک" در خروجی نمايش داده خواهد شد .در مثال فوق از يک تابع XPathاستفاده شده است ( تابع ( ) number) .تابع فوق،مسئوليت تبديل مقدار عنصر <number> به يک مقدار عددی را برعهده دارد . فراموش نکنيم که تمامی اطلاعات موجود در يک فايل XML، صرفا" بصورت متن بوده و XSLTهمواره با داده موجود در يک فايل XMLبصورت textبرخورد خواهد کرد( مگراينکه ، با صراحت به XSLTاعلام گردد که می بايست در اين رابطه تبديلی صورت پذيرد) . در صورتيکه از تابع numberاستفاده نشود ، XSLTداده موردنظر را بصورت Textبررسی می نمايد. ( در مثال فوق در مقابل علامت "<" از "gt" استفاده شده است ). مثال دو : هدف : استفاده از عنصر xsl:ifبه منظور اتخاذ تصميم و نمايش اطلاعات دانشجو با نام " خسرو ايرانی " توضيحات : درمثال فوق ، از فايل XMLارائه شده درمثال يک ( فايل XMLحاوی نام و نام خانوادگی پنج دانشجو می باشد ) و فايل XSLزير استفاده شده است. Student XSL file : If Example <?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> </tr> <xsl:for-each select="Students/name"> <xsl:if test="first="خسرو"" > <tr> <td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="first"/></font></td> <td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="last"/></font></td> </tr> </xsl:if> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> خروجی : پس از مقداردهی خصلت های DocumentSourceو TransformSourceکنترل سرويس دهنده XML، به ترتيب به فايل های XMLو XSL، خروجی زير نمايش داده می شود .

مثال سه : هدف : استفاده از عنصر xsl:chooseبه منظور اتخاذ تصميم و نمايش اطلاعات دانشجو با نام " خسرو ايرانی " و "پيمان دوستی " توضيحات :درمثال فوق ، از فايل XMLارائه شده درمثال يک ( فايل XMLحاوی نام و نام خانوادگی پنج دانشجو می باشد ) و فايل XSLزير استفاده شده است. Student XSL file for sortting<?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> </tr> <xsl:for-each select="Students/name"> <xsl:choose> <xsl:when test="first="خسرو""> <tr> <td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="first"/></font></td> <td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="last"/></font></td> </tr> </xsl:when> <xsl:when test="first="پيمان""> <tr> <td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="first"/></font></td> <td Align="Center" bgcolor="#F4F4FF"><font size="2"><xsl:value-of select="last"/></font></td> </tr> </xsl:when> </xsl:choose> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> خروجی : پس از مقداردهی خصلت های DocumentSourceو TransformSourceکنترل سرويس دهنده XML، به ترتيب به فايل های XMLو XSL، خروجی زير نمايش داده می شود .

منبع:http://article.mjsoft.ir/خ





این صفحه را در گوگل محبوب کنید

[ارسال شده از: راسخون]
[مشاهده در: www.rasekhoon.net]
[تعداد بازديد از اين مطلب: 461]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن