एक्सएसएलटी - एक्सएमएल संपादित करें
- पिछला पृष्ठ एक्सएसएलटी सर्वर एंड
- अगला पृष्ठ एक्सएसएलटी संपादक
XML फ़ाइल में संग्रहीत डाटा इंटरनेट ब्राउज़र के द्वारा संपादित किया जा सकता है。
XML खोलना, संपादित करना और सहेजना
अब, हम आपको दिखाएंगे कि कैसे सर्वर पर संग्रहीत XML फ़ाइल को खोलें, संपादित करें और सहेजें।
हम XSL का उपयोग करके XML दस्तावेज को एक HTML फॉर्म में बदलेंगे. XML एलीमेंट के मूल्य एचटीएमएल फॉर्म के इनपुट डोमेन में लिखे जाएंगे. यह फॉर्म संपादित किया जा सकता है। संपादित करने के बाद, डाटा सर्वर पर जमा कर दिया जाएगा और 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>
उपरी इस एक्सएसएल फ़ाइल एक्सएमएल फ़ाइल में एलिमेंट्स को चक्रवाती रूप से चलाती है और हर एक्सएमएल "field" एलिमेंट के लिए एक इनपुट डोमेन का निर्माण करती है। field एलिमेंट के id अटिब्यूट का मान हर एचटीएमएल इनपुट डोमेन के id और name अटिब्यूट में जोड़ा जाता है। "value" एलिमेंट के मान को हर एचटीएमएल इनपुट डोमेन के "value" अटिब्यूट में जोड़ा जाता है। नतीजा में, एक एक्सएमएल फ़ाइल में मौजूद वैल्यू को दिखाने वाला एडिटेबल एचटीएमएल फॉर्म प्राप्त होता है。
तब, हमें दूसरी स्टाइल शैली भी है: "टूल_अद्यतन.एक्सएसएल". इस एक्सएसएल फ़ाइल को अद्यतन एक्सएमएल डाटा को दिखाने के लिए इस्तेमाल किया जाएगा। इस स्टाइल शैली एक एडिटेबल एचटीएमएल फॉर्म नहीं आउटपुट करती, बल्कि एक स्टैटिक एचटीएमएल टैबल है:
<?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>
एएसपी फ़ाइल
उपर "टूल.एक्सएसएल" फ़ाइल में, एचटीएमएल फॉर्म की action अटिब्यूट का मान "एडिटटूल.एसपी" है。
एडिटटूल.एसपी वेब पृष्ठ में दो फ़ंक्शन हैं: loadFile() एक्सएमएल फ़ाइल को लोड करने और ट्रांसफ़ॉर्म करने के लिए, updateFile() फ़ंक्शन एक्सएमएल फ़ाइल को अद्यतन करने के लिए:
<%}} 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 विधि एक क्वेरी के मेल होने वाले एक एकल नोड को खोज सकती है यह क्वेरी 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 ‘यदि फॉर्म जमा किया गया है तो एक्सएमएल फ़ाइल को अद्यतन करें और परिणामों को दिखाएं, अगर नहीं तो इस एक्सएमएल फ़ाइल को संपादित करने के लिए ट्रांसफॉर्म करें’ if Request.Form("btn_sub")="" then loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl") else updateFile server.MapPath("tool.xml") end if %>
सूचना:अगर आप एएसपी लिखना नहीं जानते, तो हमारेएएसपी ट्यूटोरियल》。
टिप्पणी:हम सर्वर पर स्थित एक्सएमएल फ़ाइलों को ट्रांसफॉर्म कर रहे हैं और अपडेट कर रहे हैं।यह एक प्लैटफॉर्म निर्भर समाधान है।क्लायंट केवल सर्वर से वापस प्राप्त की गई एचटीएमएल को प्राप्त कर सकता है - और एचटीएमएल किसी भी ब्राउज़र में चल सकता है。
- पिछला पृष्ठ एक्सएसएलटी सर्वर एंड
- अगला पृष्ठ एक्सएसएलटी संपादक