ایکس ایس ایل ٹی - ایکس ایم ال پر تحریر

ایکس ایم ایل فائل میں ذخیرہ کئے گئے اعداد و شمار انٹرنیٹ براوزر کے ذریعہ ترمیم کئے جاسکتے ہیں۔

ایکس ایم ایل کھولنا، ترمیم اور محفوظ کرنا

اب، ہم آپ کو دکھائیں گے کہ کیسے سرور پر ذخیرہ کئے گئے ایکس ایم ایل فائل کو کھولنا، ترمیم اور محفوظ کرنا۔

آپ اس ایکس ایس ال استفادہ کریں گے تاکہ ایکس ایم ایل ڈاکومن کو ایک ایچ تی ایم لائن فارم میں تبدیل کریں گے۔ ایکس ایم ایل عناصر کا مطلب ایچ تی ایم لائن فورم میں انٹری کے میدان میں لکھا جائے گا۔ یہ فورم قابل ترمیم ہے۔ جب وہ تیار ہوجائے گا، تو اعداد و شمار سرور پر ارسال کئے جائیں گے، ایکس ایم ایل فائل اپدیت ہوجائے گا (یہ حصہ اے ایس پی کے ذریعہ انجام دیا جائے گا)۔

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" عنصر کے لئے ایک انٹری میدان بنائے گا۔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

در فایل "tool.xsl"، مقدار action ویژگی action فرم HTML "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 که با یک جستجو تطابق دارد را پیدا کند
   این جستجو درخواست یک element value می‌کند، که یک زیر عناصر از element field است
   این element field دارای یک property 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
اگر فرم ارسال شده باشد، فایل XML را به‌روزرسانی کرده و نتایج را نمایش دهید، اگر ارسال نشده باشد، این فایل XML را برای ویرایش تبدیل کنید
if Request.Form("btn_sub")="" then
loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl")
else
updateFile server.MapPath("tool.xml")
end if
%>

خبر:اگر آپ ASP کا استعمال نہیں جانتے تو، اپنے لیے ہماراASP تعلیم》。

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