ایکس ایس ایل تی - ایکس ایم ال میں ترمیم کرنا

داده‌های ذخیره شده در فایل XML می‌توانند با استفاده از مرورگر اینترنت ویرایش شوند.

باز کردن، ویرایش و ذخیره XML

حالا، ما به شما نشان خواهیم داد که چگونه فایل XML ذخیره شده در سرور را باز، ویرایش و ذخیره کنید.

ما از XSL برای تبدیل مستند XML به یک فرم HTML استفاده خواهیم کرد. مقادیر عناصر XML نوشته می‌شوند به حوزه‌های ورودی HTML در فرم. این فرم قابل ویرایش است. پس از ویرایش، داده‌ها به سرور ارسال می‌شوند و مستند XML به‌روزرسانی می‌شود (این بخش توسط ASP انجام می‌شود).

فایل XML و فایل XSL

ابتدا، به مستند XML که استفاده خواهد شد ("tool.xml") نگاه کنید:

<?xml version="1.0" encoding="ISO-8859-1"?>
<tool>
  <field id="prodName">
    <value>HAMMER HG2606</value> 
  </field>
  <field id="prodNo">
    <value>32456240</value> 
  </field>
  <field id="price">
    <value>$30.00</value> 
  </field>
</tool>

XML فایل را ببینید.

آپ، در زیر به جدول استایل ببینید ("tool.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>
<form method="post" action="edittool.asp">
<h2>Tool Information (edit):</h2>
<table border="0">
<xsl:for-each select="tool/field">
<tr>
<td>
<xsl:value-of select="@id"/>
</td>
<td>
<input type="text">
<xsl:attribute name="id">
  <xsl:value-of select="@id" />
</xsl:attribute>
<xsl:attribute name="name">
  <xsl:value-of select="@id" />
</xsl:attribute>
<xsl:attribute name="value">
  <xsl:value-of select="value" />
</xsl:attribute>
</input> 
</td>
</tr>
</xsl:for-each>
</table>
<br />
<input type="submit" id="btn_sub" name="btn_sub" value="Submit" />
<input type="reset" id="btn_res" name="btn_res" value="Reset" />
</form>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

XSL فائل کو دیکھیں.

مذکورہ بالا XSL فائل، XML فائل میں عناصر کو گزرش کریگا اور ہر ایک XML "field" عنصر کے لئے ایک انٹری حضرات میں پیدا کرگا. عنصر کا id نمبر، ہر HTML انٹری حضرات کا id اور name نمبر میں شامل کیا جائے گا. "value" عنصر کا نمبر، ہر HTML انٹری حضرات کا "value" نمبر میں شامل کیا جائے گا. نتیجہ میں، XML فائل میں نمبروں کا قابل ترمیم HTML فرم حاصل ہوگا.

بعد ازاں، ہم دوسری استیلائی توجیہ بھی رکھتی ہیں: "tool_updated.xsl". یہ XSL فائل، اپدیتی ہوئی XML معلومات کو دکھانے کے لئے استعمال کی جائے گی۔ یہ استیلائی توجیہ، قابل ترمیم HTML فرم نہیں، بلکہ ایک سٹیچی HTML جدول ہے:

<?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> اپدیتی ہوئی توجیہ معلومات:</h2>
<table border="1">
<xsl:for-each select="tool/field">
<tr>
<td><xsl:value-of select="@id" /></td>
<td><xsl:value-of select="value" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

XSL فائل کو دیکھیں.

ASP فائل

میدان کارکردگی فرم HTML میں، اس فائل کا میدان کارکردگی "tool.xsl" کا مارک آپ کا مارک آپ "edittool.asp" ہے:

صفحہ "edittool.asp" دو فانکشن شامل ہے: loadFile() XML فائل کو لوڈ اور تبدیل کرنا، اور updateFile() فانکشن XML فائل کو اپدیت کرنا:

<%
function loadFile(xmlfile,xslfile)
Dim xmlDoc,xslDoc
XML فائل کو لوڈ کریں
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlfile)
XSL فائل کو لوڈ کریں
set xslDoc = Server.CreateObject("Microsoft.XMLDOM")
xslDoc.async = false
xslDoc.load(xslfile)
فائل کو تبدیل کریں
Response.Write(xmlDoc.transformNode(xslDoc))
end function
function updateFile(xmlfile)
Dim xmlDoc,rootEl,f
Dim i
XML فائل کو لوڈ کریں
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlfile)
rootEl کا متغیر کو ریشه علامت کا متغیر بنائیں
Set rootEl = xmlDoc.documentElement
فرم کی مجموعہ میں سیکشنوں کو دوروزیر کریں
for i = 1 To Request.Form.Count
   فرم میں کیونکہ بٹن علامت کو ختم کریں
   if instr(1,Request.Form.Key(i),"btn_")=0 then
   selectSingleNode مہم کو کوئی بھی جستجو کو پتہ لگانے والا XML فائل کا کوئی بھی واحد نیود کو تلاش کرنے کا مہم ہے
   یہ کوئی جستجو کریگا، جو value علامت کو درخواست کریگا، جو field علامت کا بیٹا علامت ہے
   یہ field علامت فرم کی موجودہ key کی دفعہ کا id حصہ رکھتا ہے
   اگر کوئی ماتختیار موجود ہے تو text کا حصہ فرم کی موجودہ سیکشن کی کی دفعہ کو سٹ کریں
   set f = rootEl.selectSingleNode("field[@id='" & _
   Request.Form.Key(i) & "/value")
   f.Text = Request.Form(i)
   end if
next
ترمیم شدہ XML فائل کو محفوظ کریں
xmlDoc.save xmlfile
تمام اشیاء کی رفرنسیز کو ریکسٹ کریں
set xmlDoc=nothing
set rootEl=nothing
set f=nothing
ذریعہ ایک استایل شیئر، ترمیم شدہ XML فائل کو لوڈ کریں، تاکہ کلائنٹ وہ معلومات دیکھ سکے جو ترمیم کیا گیا ہے
loadFile xmlfile,server.MapPath("tool_updated.xsl")
end function
‘ اگر فرم فرم دیا گیا ہے تو ایکس ایم ال فائل کو اپدیت کریں اور نتائج کو دکھائیں، اگر فرم فرم نہیں دیا گیا ہے تو اس ایکس ایم ال فائل کو تبدیل کریں تاکہ وہ مدد سے ترمیم کیا جاسکے ‘
if Request.Form("btn_sub")="" then
loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl")
else
updateFile server.MapPath("tool.xml")
end if
%>

تعلیمات:اگر آپ نے اس پی اے لکھنا نہیں سیکھا ہے تو، اپنے لیے ہماراایس پی اے درس」。

تعلیمات:ہم سرور پر واقع ایکس ایم ال فائل کو تبدیل اور اپدیت کر رہے ہیں۔ یہ ایک پلیٹ فارم پر مشتمل حل ہے۔ کلائنٹ صرف سرور سے واپس براہ راست حاصل کئے جانے والے ایچ تی ایم ال کو حاصل کرسکتا ہے - جو کسی بھی براوزر میں چل سکتا ہے۔