এক্সএসএলটি - এক্সএমএল সম্পাদনা

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 ফাইল দেখুন

উপরের এই 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>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>

XSL ফাইল দেখুন

ASP ফাইল

উপর "tool.xsl" ফাইলে, HTML ফর্মের action অ্যাট্রিবিউটের মান "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
form সংকলনকে পরিভ্রমণ করুন
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
%>

সুঝাওয়া:যদি আপনি এসপি লিখতে জানেন না, তবে আমাদেরএসপি শিক্ষাক্রম

মন্তব্য:আমরা সার্ভারে অবস্থিত XML ফাইলটি রূপান্তরিত এবং অপদাত্ত করছি।এটি একটি প্ল্যাটফর্ম অব্যবহারিক সমাধান।ক্লায়েন্টটি শুধুমাত্র সার্ভার থেকে ফিরে আসা HTML পাবে - এবং এই এইচটিএমএল কোনও ব্রাউজারেই চালানো যায়。