دربخش اول اين مقاله با نحوه تبديل فايل های XML با استفاده از فايل های XSLT آشنا شديم .در بخش دوم به بررسی نحوه تبديل اسناد DOM با استفاده از XSLT خواهيم پرداخت .
تبديل اسناد DOM با اسنتفاده از XSLT
فريمورک دات نت از اينترفيس استاندارد DOM کنسرسيوم وب حمايت می نمايد ، بنابراين می توان فايل های XML را به طور کامل و به عنوان يک سند DOM در حافظه مستقر نمود . با استقرار سند DOM در حافظه امکان دستيابی به تمامی ساختار سلسله مراتبی سند XML فراهم می شود . پس از استقرار يک سند DOM در حافظه و به موازات آن می توان يک XSLT style sheet را نيز درون سند DOM و به عنوان يک سند تبديل در حافظه مستقر نمود . بدين ترتيب شرايط لازم به منظور اعمال اسکريپت های مورد نظر به منظور تبديل يک سند DOM فراهم می گردد .

مثال : در اين مثال فايل SrcoArticles.Xml به عنوان يک سند DOM و فايل SrcoArticles.Xsl به عنوان يک سند تبديل در حافظه مستقر شده و در ادامه با استفاده از کنترل
|
خصلت Document به يک سند DOM ( يک سند XML که درون DOM لود شده است ) اشاره می نمايد . خصلت Transform به يک سند تبديل اشاره می نمايد ( يک فايل XSLT که به درون DOM لود شده است ) . برخلاف حالتی که خصلت های DocumentSource و TransformSource مستقيما" در کنترل
|
< asp:xml id="TransformOut" runat="server"/> |
ايجاد يک سند DOM
به منظور استقرار يک فايل XML درون سرويس دهنده DOM در ابتدا می بايست يک شی XmlDocument ايجاد گردد . در ادامه با استفاده از شی ايجاد شده ، امکان استقرار سند XML در حافظه فراهم می گردد :
|
Dim document As XmlDocument |
متد Load شی XmlDocument يک فايل XML را به عنوان ورودی گرفته و آن را به صورت يک درخت در حافظه مستقر می نمايد ( يک نمايش درخت گونه از سند XML در حافظه ) . Path مسير فيزيکی به فايل XML را مشخص می نمايد . در چنين مواردی می توان از متد MapPath به منظور تبديل يک آدرس نسبی به مسير کامل فيزيکی نيز استفاده نمود .
XmlDocument يکی از اشياء قدرتمند در ارتباط با فايل های XML است که به برخی از ويژگی های مهم آن اشاره می گردد :
-
مسئوليت پياد ه سازی اينترفيس استاندارد DOM مربوط به کنسرسيوم وب را برعهده دارد.( متعلق به System.Xml )
-
استقرار يک سند XML در حافظه به صورت يک نمايش درختی
-
امکان دستيابی به هر گره موجود در سند XML
-
ارائه يک روش کاملا" انعطاف پذير به منظور دستيابی به هر گره مورد نياز در سند XML در مقايسه با اشياء XmlTextReader و XmlTextReader که صرفا" امکان دستيابی به صورت Forward only را فراهم می نمايند .
-
خصلت ها و متدهای متعددی به منظور پردازش اسناد XML مستقر در حافظه را ارائه می نمايد .
-
مهمترين نکته قابل تامل در خصوص اينترفيس DOM ، استقرار تمامی داده XML در حافظه است . بنابراين در صورت بالا بودن حجم سند XML ، حافظه زيادی مصرف می شود . در مواردی که با محدوديت حافظه مواجه هستيم می توان از روش های مبتنی بر Forward-only استفاده نمود .
ايجاد يک سند تبديل
از فرآيندی مشابه آنچه اشاره گريد به منظور استقرار يک XSLT style sheet در حافظه استفاده می گردد . در ابتدا يک شی XslTransform ايجاد شده و در ادامه اين شی از طريق يک فايل XSLT style sheet در حافظه مستقر می گردد .
|
Dim document As XslTransform |
کدهای لازم به منظور تبديل
پس از استقرار دو سند مورد نظر در حافظه ، از سند XSLT به منظور تبديل سند XML DOM استفاده می گردد . در چنين مواردی خصلت های Transform و Document به کنترل
|
<%@ Import Namespace="System.Xml" %> |
از System.Xml به منظور ايجاد سند DOM و از System.Xml.Xsl به منظور ايجاد سند تبديل استفاده شده است .

عبارات ديگر تبديل
ترکيبات متفاوتی از خصلت های تبديل را می توان به همراه کنترل
|
Dim SrcoDOM As New XmlDocument() |
در روشی ديگر، می توان يک فايل XML را با استفاده از خصلت DocumentSource مربوط به کنترل
|
Dim SrcoDOM As New XmlDocument() |
