XSLT - XML ਸੰਸਕਰਣ

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>

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 ਅਟਰੀਬਿਊਟ ਦਾ ਮੁੱਲ ਹਰ ਹੱਥੀ ਇਨਪੁਟ ਫੀਲਡ ਦੇ 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>

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 ਮੱਥਦਾ ਹੈ ਕਿ ਕੋਈ ਕੁਰਸੀ ਮੁੱਲ ਨਾਲ ਮੇਲ ਖਾਣ ਵਾਲਾ ਇਕ ਮੂਲ ਨੂੰ ਚੁਣੇ ਜਾਵੇ
   ਇਹ ਕੁਰਸੀ ਮੁੱਲ ਇਲੈਕਟਰੋਨ ਦੇ ਮੁੱਲ ਨੂੰ ਚਾਹੁੰਦੀ ਹੈ
   ਅਤੇ ਇਹ 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 可运行于任何浏览器。