سوال بسیار مهم :

چگونه می توان محتویات سند xml را با استفاده از xslt درون سند xhtml استفاده کرد ؟ جزئیات مثال زیر  در فصلهای بعدی توضیح داده خواهد شد
اعلان دستورات xsl
برای اینکه در برنامه بگوئید دستورات نوشته شده از نوع xsl هستند باید این دستورات را دورن یکی از تگ های زیر قرار دهید
<xsl:stylesheet>

یا

<xsl:transform>
اما با توجه به استانداردw3 باید یکی از این دو خط زیر را هم در ابتدای سند قبل از تگ html اضافه نمائیم

<xsl:stylesheet version=”1.0″
xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
یا

<xsl:transform version=”1.0″
xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>

آشنایی با کار توسط مثال

گام اول

فرض کنید می خواهیم  محتویات سند xml زیر را که نام ان cdcatalog.xml است در سند xhtml استفاده کنیم

سند xml بصورت زیر است :

<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>

در برنامه بالا چه چیزهایی وجود دارد ؟

شاخه یا root با نام : catalog درون شاخه یا root تگ های دیگر قرار دارند درون شاخه تگ بزرگ دیگری که شامل تگ های فرزند است قرار دارد و نام ا ن cd است درون تگ cd تگ های فرزند به نام های title , artist , country , company , price,year  قرار دارندو دورن هر یک از این تگ های فرزند محتویات انها قرار دارد

با کلیک روی علامت + یا – کنار هر عنصر می توانید محتویات انرا جمع کرده یا نمایش دهید

در صورتیکه نمی خواهید علامت های + و – را ببینید

در جائی از صفحه کلیک راست نموده یکی از گزینه های زیر را انتخاب کنید :

View Page Source” یا  “View Source

 روش مشاهده فایل xml در مرورگر netscape 6 :
فایل xml را اجرا کنید

در جایی از صفحه ا ن کلیک راست کنید

گزینه View Page Source را انتخاب کنید تا تگ ها را رنگی ببینید

بعد از اجرای فایل xml در جایی از صفحه ان کلیک راست کرده گزینه Frame” / “View Source را انتخاب نمائید تا محتویات xml را بصورت طرح متنی ببینید
 گام دوم

نوشتن برنامه xsl
درون یک سند xsl با استفاده از الگوهای مسیر یابی تگ ها که در xpath آموختید به محتویات تگ های سند xml دست خواهیم یافت این برنامه را از نوع xsl ایجاد می کنیم به نام cdcatalog.xsl

<?xml version=”1.0″ encoding=”ISO-8859-1″?>

<xsl:stylesheet version=”1.0″
xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>

<xsl:template match=”/”>
<html>
<body>
<h2>My CD Collection</h2>
<table border=”1″>
<tr bgcolor=”#9acd32″>
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select=”catalog/cd”>
<tr>
<td><xsl:value-of select=”title”/></td>
<td><xsl:value-of select=”artist”/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

 در برنامه بالا چه می بینیم ؟

خط اول داره می گه که از محتویات سند xml استفاده می کنیم

خط دوم داره می گه که از دستورات زبان xslt هم می خواهیم استفاده کنیم

خط سوم داره می گه دستورات xslt و کدهای دیگر html باید درون تگ خط سوم نوشته بشن

خط ۴و۵و۶ که کاملا واضحه

خط ۷ جدول با حاشیه با ضخامت ۱ پیکسل ایجاد می کنه

خط ۸  و ۹و ۱۰ و ۱۱ مربوط به ایجاد یک سطر با دو ستون هست که دورن انها عبارتهای title , artist نوشته شده

خط ۱۲ یعنی
<xsl:for-each select=”catalog/cd”>

که در فصلهای بعدی مفصلا درباره اون حرف می زنیم داره می گه برای تمام تگ هایی که اسمشونcd می باشند و این تگ های Cd درون تگ catalog هستند کارهای زیر را انجام بده

همونطور که در برنامه مشاهده می کنین خطهای ۱۳و۱۴و۱۵و۱۶ بین این تگ و تگ بسته اش قرار دارند پس یعنی برای هر تگ cd که درون تگ catalog می باشد یک سطر با دو ستون ایجاد کنه

خط ۱۳

یک سطر جدیددر جدول ایجاد می کنه

خط ۱۴

یک ستون در سطر جدید ایجاد می کنه که محتویاتش را با استفاده از دستورات xslt بدست می اره و محتویاتش ان چیزی است که درون تگ title قرار داره

خط ۱۵

یک ستون در سطر جدید ایجاد می کنه که محتویاتش را با استفاده از دستورات xslt بدست می اره و محتویاتش ان چیزی است که درون تگ  artist قرار داره

خط ۱۶

اخر سطر جدید

خط ۱۷

انتهای حلقه for-each

خطهای ۱۸ به بعد هم که کاملا مشخصه

اما همانطور که از اجرای برنامه xsl بالا مشاهده کردید نتیجه کار یک جدول واقعی نیست بلکه شما همان دستورات بالا را بصورت رنگی در خروجی می بینید .زیرا ما هنوز در برنامه xml خودمان به برنامه xsl پیوند بر قرار نکرده ایم تا اطلاعات سند xml را زیبا تر نشان دهد
گام سوم
کار دیگری که باید انجام دهیم این است که در ابتدای سند xml اعلام کنیم که کدام برنامه xsl کار انتقال این سند را انجام خواهد داد
مثال زیر به خوبی روش کار را نشان می دهد

<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<?xml-stylesheet type=”text/xsl” href=”cdcatalog.xsl”?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>