एक्सएसएलटी - एक्सएमएल संपादित करना
- पिछला पृष्ठ सर्वर पास 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 फ़ाइल को अद्यतन एक्सएमएल डाटा दिखाने के लिए इस्तेमाल किया जाएगा. यह स्टाइलशीट एक एक्सिबल हैंडल है और एक स्टैटिक एचटीएमएल टेबल नहीं उत्पन्न करता:
<?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>
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) 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 एलीमेंट को अनुरोध करेगी, जो 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 शिक्षा}}
टिप्पणी:हम सर्वर पर स्थित XML फ़ाइलों को बदल रहे हैं और अपडेट कर रहे हैं।यह एक प्लेटफॉर्म निरपेक्ष समाधान है।क्लायंट केवल सर्वर से वापस प्राप्त होने वाले HTML को प्राप्त कर सकता है - जो किसी भी ब्राउज़र में चल सकता है。
- पिछला पृष्ठ सर्वर पास XSLT
- अगला पृष्ठ एक्सएसएलटी इंस्टांस