نحوه تبديل يک سند XML در دات نت New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 دوشنبه  8  خرداد  1396  2017  May  29   Monday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 XML در دات نت : تبديل اسناد XML ( بخش دوم )

 مديريت وب

8265

4

4.2

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

XML در دات نت

XML در دات نت : تبديل اسناد XML  ( بخش دوم )

دربخش اول اين مقاله با نحوه تبديل فايل های XML با استفاده از فايل های XSLT  آشنا شديم .در بخش دوم  به بررسی نحوه تبديل اسناد DOM با استفاده از XSLT خواهيم پرداخت .

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

 

مثال : در اين مثال فايل SrcoArticles.Xml به عنوان يک سند DOM و فايل SrcoArticles.Xsl به عنوان يک سند تبديل در حافظه مستقر شده و در ادامه با استفاده از کنترل <asp:xml> و اسکريپت های نوشته شده ، عمليات تبديل انجام خواهد شد . به منظور تبديل فوق کنترل <asp:xml>  از دو خصلت متفاوت می نمايد :

  • id.Document  : مرجعی به سند XML DOM  

  • id.Transform  مرجعی به سند تبديل XSLT 

خصلت Document به يک سند DOM ( يک سند XML که درون DOM لود شده است ) اشاره می نمايد . خصلت Transform به يک سند تبديل اشاره می نمايد ( يک فايل XSLT که به درون DOM لود شده است ) . برخلاف حالتی که  خصلت های DocumentSource و TransformSource مستقيما" در کنترل <asp:xml>  استفاده و به  آنان مراجعه می گرديد ، از خصلت های فوق نمی توان به عنوان خصلت های همراه  کنترل استفاده نمود . امکان بکارگيری خصلت های فوق صرفا" از طريق اسکريپت های مورد نظر امکان پذير می باشد . در چنين مواردی کنترل <asp:xml>  می بايست دارای يک مشخصه خاص ( id  ) باشد تا اسکريپت های مورد نظر با استفاده از آن قادر به انجام فرآيند تبديل باشد .

< asp:xml id="TransformOut" runat="server"/>

ايجاد يک سند DOM
به منظور استقرار يک فايل XML درون سرويس دهنده DOM در ابتدا می بايست يک شی XmlDocument  ايجاد گردد . در ادامه با استفاده از شی ايجاد شده ، امکان استقرار سند XML در حافظه فراهم می گردد :

Dim document As XmlDocument
document = New XmlDocument
document.Load(path)

                             
يا

Dim document = New XmlDocument()
document.Load(path)

متد 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
document = New XslTransform()
document.Load(path)


                       
يا

Dim document = New XslTransform()
document.Load(path)

کدهای لازم به منظور تبديل
پس از استقرار دو سند مورد نظر در حافظه ، از سند XSLT به منظور تبديل سند XML DOM استفاده می گردد . در چنين مواردی خصلت های  Transform و Document به کنترل <asp:Xml>  نسبت داده  شده و در  ادامه ماحصل فرآيند تبديل که يک سند XHTML است از طريق کنترل نمايش داده می شود .

<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>

<SCRIPT runat="server">

Sub Page_Load

   Dim SrcoXSL As New XslTransform()
   Dim SrcoDOM As New XmlDocument()

   SrcoDOM.Load(MapPath(" SrcoArticles.xml "))
   SrcoXSL.Load(MapPath(" SrcoArticles.xsl"))

   TransformOut.Document = SrcoDOM
   TransformOut.Transform =  SrcoXSL

End Sub

</SCRIPT>

<html dir=rtl>
<head>
<title>تبديل يک سند </title>
</head>
<body>

<form runat="server">
<p align="center" style ="font-weight:bold">
<asp:label id="Message" runat="server"/>  </p>
<asp:xml id="TransformOut" runat="server"/>
 </form>
</html >

 از System.Xml به منظور ايجاد سند DOM و از System.Xml.Xsl به منظور ايجاد سند تبديل استفاده شده است .

عبارات ديگر تبديل
ترکيبات متفاوتی از خصلت های تبديل را می توان به همراه کنترل <asp:Xml> استفاده نمود . مثلا" می توان يک سند XML DOM را با استفاده از متد Load مربوط به شی XmlDocument در حافظه مستقر نمود و در ادامه يک فايل XSLT را در ارتباط با آن بکار گرفت  . در چنين مواردی فايل XSLT با استفاده از خصلت TransformSource مربوط به کنترل <asp:xml> مشخص شده و  سند DOM از طريق اسکريپت مورد نظر به خصلت  Document مربوط به کنترل <asp:xml> نسبت داده می شود .

Dim SrcoDOM As New XmlDocument()
SrcoDOM.Load(MapPath(" SrcoArticles.xml "))
XMLControl.Document =SrcoDOM
 
<asp:xml id="XMLControl" TransformSource=" SrcoArticles.xsl" runat="server"/>

در روشی ديگر، می توان  يک فايل XML را با استفاده از خصلت  DocumentSource مربوط به کنترل <asp:xml> مشخص نمود و به موازات آن  فايل  XSLT  را  با استفاده از اسکريپت هائی که مقدار مورد نظر را به خصلت Transform نسبت می دهد ، استفاده نمود .

Dim SrcoDOM As New XmlDocument()
Dim SrcoXSL As New XslTransform()
SrcoXSL.Load(MapPath(" SrcoArticles.xsl"))
XMLControl.Transform = SrcoXSL
 
<asp:xml id="XMLControl" DocumentSource=" SrcoArticles.xml " runat="server"/>



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382