XSLT - XML ਸੰਸਕਰਣ
- 上一页 XSLT 在服务器端
- 下一页 XSLT ਉਦਾਹਰਣ
XML ਫਾਈਲ ਵਿੱਚ ਸਟੋਰ ਕੀਤੀ ਹੋਈ ਡਾਟਾ ਇੰਟਰਨੈੱਟ ਬਰਾਊਜ਼ਰ ਰਾਹੀਂ ਸੰਸ਼ੋਧਨ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ。
ਖੋਲ੍ਹਣਾ, ਸੰਸ਼ੋਧਨ ਕਰਨਾ ਅਤੇ ਸੰਭਾਲਣਾ XML
ਹੁਣ, ਅਸੀਂ ਤੁਹਾਨੂੰ ਦਿਖਾਵਾਂਗੇ ਕਿ ਕਿਵੇਂ ਸਰਵਰ ਵਿੱਚ ਸਟੋਰ ਕੀਤੀ ਹੋਈ XML ਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹੀ, ਸੰਸ਼ੋਧਨ ਕੀਤੀ ਅਤੇ ਸੰਭਾਲੀ ਜਾਵੇ।
ਅਸੀਂ XSL ਦੀ ਵਰਤੋਂ ਕਰਕੇ XML ਡਾਕੂਮੈਂਟ ਨੂੰ HTML ਫਾਰਮ ਵਿੱਚ ਟਰਾਂਸਫਾਰਮ ਕਰਾਂਗੇ।XML ਐਲੀਮੈਂਟ ਦੇ ਮੁੱਲ ਹੈਲਟ ਫਾਰਮ ਵਿੱਚ ਹੈਲਟ ਇਨਪੁਟ ਡੋਮੀਨ ਲਿਖਾਂਗੇ।ਇਹ ਫਾਰਮ ਸੰਸ਼ੋਧਨ ਯੋਗ ਹੈ।ਜਦੋਂ ਸੰਸ਼ੋਧਨ ਪੂਰਾ ਹੋਵੇਗਾ, ਡਾਟਾ ਸਰਵਰ ਵਿੱਚ ਸੰਬੋਧਨ ਹੋਵੇਗਾ, XML ਫਾਈਲ ਅੱਪਡੇਟ ਹੋਵੇਗੀ (ਇਹ ਏਸਪੀ ਦੁਆਰਾ ਕੀਤਾ ਜਾਵੇਗਾ)。
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 ਅਟਰੀਬਿਊਟ ਦਾ ਮੁੱਲ ਹਰ ਹੱਥੀ ਇਨਪੁਟ ਫੀਲਡ ਦੇ id ਅਤੇ name ਅਟਰੀਬਿਊਟ ਵਿੱਚ ਜੋੜਿਆ ਜਾਵੇਗਾ।"value" ਈਲੀਮੈਂਟ ਦਾ ਮੁੱਲ ਹਰ ਹੱਥੀ ਇਨਪੁਟ ਫੀਲਡ ਦੇ "value" ਅਟਰੀਬਿਊਟ ਵਿੱਚ ਜੋੜਿਆ ਜਾਵੇਗਾ।ਨਤੀਜੇ ਵਜੋਂ, XML ਫਾਈਲ ਵਿੱਚ ਮੁੱਲਾਂ ਨੂੰ ਸੰਚਾਰਿਤ ਕਰਨ ਵਾਲੀ ਹੱਥੀ ਐਂਟਰੀ ਫਾਰਮ ਮਿਲ ਸਕਦੀ ਹੈ。
ਫਿਰ ਅਸੀਂ ਦੂਜੀ ਸਟਾਈਲ ਸ਼ੇਅਰ ਵੀ ਹਾਂ: "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>ਅੱਪਡੇਟਡ ਟੂਲ ਸੂਚਨਾ:</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() 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 ਮੱਥਦਾ ਹੈ ਕਿ ਕੋਈ ਕੁਰਸੀ ਮੁੱਲ ਨਾਲ ਮੇਲ ਖਾਣ ਵਾਲਾ ਇਕ ਮੂਲ ਨੂੰ ਚੁਣੇ ਜਾਵੇ ਇਹ ਕੁਰਸੀ ਮੁੱਲ ਇਲੈਕਟਰੋਨ ਦੇ ਮੁੱਲ ਨੂੰ ਚਾਹੁੰਦੀ ਹੈ ਅਤੇ ਇਹ field ਇਲੈਕਟਰੋਨ ਫਾਰਮ ਵਿੱਚ ਮੌਜੂਦ ਕੀ ਮੁੱਲ ਨਾਲ ਮੇਲ ਖਾਣ ਵਾਲਾ 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 ਉਦਾਹਰਣ