XSLT - XML সম্পাদন

XML ফাইলে সংরক্ষিত ডাটা ইন্টারনেট ব্রাউজারের মাধ্যমে সংশোধন করা যায়。

XML খোলা, সংশোধন এবং সংরক্ষিত করা

এখন, আমরা আপনাকে দেখাবো কিভাবে সার্ভারে সংরক্ষিত XML ফাইলটি খোলা, সংশোধন এবং সংরক্ষিত করা হবে。

আমরা XSL ব্যবহার করে XML ডকুমেন্টকে একটি HTML ফর্মে রূপান্তর করব।XML ইলেকট্রনের মানগুলোকে HTML ফর্মের 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>টুল তথ্য (সম্পাদনা):</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 ফাইল XML ফাইলের ইলেকট্রনমেন্টগুলি চক্রবর্তী করবে এবং প্রত্যেক XML "field" ইলেকট্রনমেন্টকে একটি ইনপুট ডোমেইন তৈরি করবে।field ইলেকট্রনমেন্টের id এট্রিবিউটের মান প্রত্যেক HTML ইনপুট ডোমেইনের id এবং name এট্রিবিউটে যোগ করা হবে।"value" ইলেকট্রনমেন্টের মান প্রত্যেক HTML ইনপুট ডোমেইনের "value" এট্রিবিউটে যোগ করা হবে।ফলে, XML ফাইলের মানগুলির সঙ্গে সংযুক্ত একটি এডিটযোগ্য HTML ফর্ম পাওয়া যাবে。

তারপর, আমাদের আরও একটি স্টাইলশিপ আছে: "tool_updated.xsl"। এই XSL ফাইলটি ব্যবহার করা হবে এক্সএল ডাটা দেখানোর জন্য। এই স্টাইলশিপটি এডিটযোগ্য 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>Updated Tool Information:</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>

এক্সএল স্টাইলশিপ দেখুন.

ASP ফাইল

উপর "tool.xsl" ফাইলে, HTML ফর্মের action অ্যাট্রিবিউটের মান "edittool.asp" হয়。

"edittool.asp" পেজ দুটি ফাংশন ধারণ করে: loadFile() এক্সএল ফাইল লোড এবং ট্রান্সফরম করে, updateFile() ফাংশন এক্সএল ফাইল আপডেট করে:

<%
function loadFile(xmlfile,xslfile)
Dim xmlDoc,xslDoc
XML ফাইলটি লোড করা
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlfile)
এক্সএল ফাইল লোড
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 ইলেমেন্টটির জন্য অনুরোধ করা হবে, এই 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
যদি ফর্ম সম্পন্ন হয়েছে, তবে 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 - 而 HTML 可运行于任何浏览器。