جابه جایی اسناد XML با استفاده از XSLT و کنترل XML

شنبه 11 اردیبهشت 1395

در این مقاله قصد داریم تا ضمن شرح XSLT به نحوه تبدیل فرمت xml به سایر فرمت ها مانند HTML و PDF بپردازیم .به همراه یک پروژه عملی محتویات یک فایل XML را به کمک کنترل XML در داخل ASP و همچنین XSLT به فرمت HTML تبدیل خواهیم کرد .

جابه جایی اسناد XML با استفاده از XSLT و کنترل XML

در این مقاله نحوه جابه جایی داده هایی از نوع Xml را با کمک XSLT و کنترل xml در Asp.net شرح خواهیم داد .اگر به سایت w3 سری بزنید خواهید دید که دو استایل مختلف زبان را به شما پیشنهاد می دهد .

1 – Css

2 – XLST

از XLST برای تبدیل سندهای Xml به فرمت HTML و سایر فرمت های متنی استفاده می شود .همان طور که می دانید از Xml برای تبادل اطلاعات در بین نرم افزارهای مختلف استفاده می شود .xml ساختار بسیار ساده ای دارد و به راحتی می توانید در یک ویرایشگر متن ساده اقدام به تولید فایل هایی از نوع Xml کنید .سادگی تولید اطلاعات در قالب xml از مزیت های مهم این نوع فرمت است .ولی در بسیاری از موارد نمی خواهیم که اطلاعات را در همان فرمت xml نمایش دهیم بلکه قصد داریم جلوه دیگری به آن بدهیم و یا اساسا ساختار آنرا تغییر دهیم .متداولترین نرم افزار برای تبدیل فرمت xml به سایر فرمت ها XSLT است .
بمنظور ارسال اطلاعات بين برنامه های متفاوت، می بايست قادر به تبديل داده ها از مدل استفاده شده توسط يک برنامه به مدل استفاده شده توسط برنامه ديگر باشيم برای خارج کردن اطلاعات مورد نیاز  از يک مجموعه اسناد XML و ايجاد اطلاعات مورد نياز برای ساير اسناد  XML ، XSLT ابزاری مناسب  است .

XSLT برای تبدیل اسناد xml به سایر فرمت ها دو کار انجام می دهد .

اول ساختار اطلاعات را به ساختار مورد نظر در مقصد تبدیل می کند .

ایجاد فرمت مورد نیاز که در مقصد خواسته شده است .مثلا اگر فرمت مد نظر HTML باشد به همان فرمت تبدیل خواهد شد .

در ادامه به صورت عملی به آموزش XSLT  می پردازیم .یک برنامه ASP.NET از نوع website ایجاد می کنیم .در داخل این پروژه یک فایل xml داریم که به صورت زیر است

<?xml version="1.0" encoding="utf-8" ?>
<College>
  <Student>
    <Name>سمیه</Name>
    <Branch>MVC</Branch>
  </Student>
  <Student>
    <Name>سیما</Name>
    <Branch>B.Tech</Branch>
  </Student>
 </College>

حال یک سند دیگری از نوع xslt ایجاد می کنیم پسوند این فایل xslt است .محتویات این فایل در زیر آمده است .

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="College">
      <h1>مشخصات دانشجویان</h1>

      <table border="1" bgcolor="lightBlue" width="250">
        <xsl:for-each select="Student">
          <tr>
            <td>
              <xsl:value-of select="Name"/>
            </td>
            <td>
              <xsl:value-of select="Branch"/>
            </td>
          </tr>
        </xsl:for-each>
      </table>
            </xsl:template>
  
</xsl:stylesheet>

نام المنت هایی که در اسناد از نوع XSLT به کار رفته و کاربرد آنها را در زیر می بینید

حال برای نمایش این سند از کنترل XML موجود در Asp استفاده می کنیم

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body style="direction:rtl;">
    <form id="form1" runat="server">
    <div>
    
    <asp:Xml ID="college" runat="server" DocumentSource="~/CollegeXML.xml" TransformSource="~/CollegeXLST.xslt"></asp:Xml>
    </div>
    </form>
</body>
</html>

پراپرتی هایی که برای کنترل Xml استفاده شده است در زیر آمده است

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body style="direction:rtl;">
    <form id="form1" runat="server">
    <div>
    
    <asp:Xml ID="college" runat="server" DocumentSource="~/CollegeXML.xml" TransformSource="~/CollegeXLST.xslt"></asp:Xml>
    </div>
    </form>
</body>
</html>

اگر برنامه را اجرا کنید شکل زیر را خواهید دید

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید