XSLT - XML সম্পাদন
- 上一页 XSLT 在服务器端
- 下一页 XSLT ইনস্ট্যান্স
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>
এরপর, নিচের স্টাইলশিপ-টি ("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 可运行于任何浏览器。
- 上一页 XSLT 在服务器端
- 下一页 XSLT ইনস্ট্যান্স