xsl چیست؟

مهر ۱۰, ۱۳۸۳ 0 By حسن شجاعی

xsl سر نام های eXtensible Stylesheet Language می باشد.یک xsl شامل دستورالعمل هایی برای شکل دهی به محتویات یک فایل xml می باشد. قالب کلی یک فایل xsl را می توانید با وارد کردن آدرس res://msxml.dll/defaultss.xsl در قسمت آدرس مرورگر خود مشاهده نمایید.این یک مثال کامل از یک سند xsl است که برای آشنایی اولیه و یافتن یک دید کامل مناسب خواهد بود. نتیجه تبدیل و فرمت دهی یک سند xml بوسیله xsl می تواند به صورت یک فایل html یا یک فایل xml دیگر باشد که در اینجا ما در مورد تبدیل به یک فایل html صحبت خواهیم کرد.

» xslt

عمل تبدیل xml بوسیله xsl را xslt گویند(xsl transform). برای انجام عمل تبدیل به یک پردازنده xslt نیاز داریم تا داده های سند xml و دستورالعمل های xsl را بخواند و بر اساس آن دستورالعمل ها داده ها را در خروجی html بنویسد.می توانید اینکار را با برنامه نویسی c# و استفاده از موتور xslt موجود در c#.net انجام دهید و یا از پردازنده های xslt جداگانه ای که نمونه هایی از آنها به صورت رایگان موجود می باشد استفاده نمایید.یک پردازنده خط فرمان رایگان از آدرس http://jclark.com/xml/xt.htmlقابل دریافت می باشد.نحوه استفاده از این پردازنده خط فرمان در مثال زیر مشخص شده است:

 

xt source.xml stylesheet.xsl result.html
یکی دیگر از ویرایشگرهای موجود ، ویرایشگر XRay XML Editor می باشد که از آدرس http://www.architag.com/xray قابل دریافت می باشد.این ویرایشگر جالب در داخل خود امکان تولید اسناد xml و xsl و در نهایت تولید html خروجی را فراهم می کند.
 
» یک مثال
فکر کنم بهترین روش برای یادگیری استفاده از یک مثال باشد.فرض کنید داده های خود را در یک فایل xml به صورت زیر داریم و می خواهیم آنرا در یک فایل html نمایش دهیم.
<MySite> <Links> <title>یک سایت فوق العاده جالب!</title> <url>http://yahoo.com</url> <description>این سایت شاید اولین سایتی باشد که.. </ description> </Links> <Links> <title>دنبال جی هستید؟</title> <url>http://www.google.com</url> <description>جستجو در اینترنت</ description > </Links> </MySite>
برای تبدیل این سند xml به html از یک فایل xsl به صورت زیر استفاده کرده ایم:
<?xml version=”1.0″ encoding=”UTF-8″?> <xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>; <xsl:output method=”html”/> <xsl:template match=”MySite”> <HTML> <HEAD> <TITLE>Links</TITLE> </HEAD> <BODY> <H2>Links</H2> <xsl:for-each select=”Links”> <a href=”{url}”> <xsl:value-of select=”title”/><br/> </a> <xsl:value-of select=”description”/><br/> <hr/> </xsl:for-each> </BODY> </HTML> </xsl:template> </xsl:stylesheet>
xsl نوعی سند xml است و بهمین دلیل در خط اول آن از اعلان xml استفاده شده است.تگ stylesheet تگ ریشه یک سند xsl است که دو صفت Version و namespace آن مقداردهی می شود.تنها یک نسخه از xslt ارائه شده است و آنهم ورژن ۱٫۰ آن است.namespace هم مجموعه عناصری که مجاز به استفاده از انها در xsl خواهیم بود را در بر می گیرد.با استفاده از تگ template عنصری از xml که داده های آن باید مورد استفاده قرار گیرد مشخص می شود که در این مثال بالاترین عنصر در سند xml عنصر MySite می باشد.با استفاده از تگ for-each هم برای مجموعه ای از عناصر مشابه یک حلقه تکرار می شود.نام عنصر در صفت select این تگ مشخص می شود که در این مثال Links است.به ازای هر کدام از این عناصر ، محتویات عناصر داخلی آن با استفاده از تگ value-of و آوردن نام عنصر در صفت select آن نمایش داده می شود.چنانچه بخواهیم محتویات یک عنصر را در داخل یک تگ مثل نمایش دهیم از عبارتی شبیه {url} که url نام عنصر است استفاده می کنیم. حال که اسناد xml و xsl مورد نیاز آماده شده است به یک پردازنده xslt نیاز داریم تا عمل تبدیل را انجام دهد.در اینجا از پردازنده xt استفاده می کنیم: