XSLT - Tafinfin XML

Data na sabuntawon dominan file na XML zaii yanbian dominan browser na internet.

Ba, yanbian da sabuntawon, da sabuntawon XML

Bayan, akan jini koyan dominan ba, yanbian da sabuntawon dominan server na XML file.

Akan jini dominan XSL dominan XML document dominan HTML form. Value na XML element zaii wuro dominan HTML input domain. Form na zaii yanzu. Bayan na zaii yanbian, data zaii sabuntawon dominan server, file na XML zaii yinshen (na part dominan ASP).

Fiilen XML da fiilen XSL

Kafin, kai koye kan fiilen XML da za a yi amfani da su ("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>

Kai koye XML fiilen.

Sannan, kai koye kan kusan furenwa ("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>Information kan Tarihi (tafiya):</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>

Gani fayilin XSL.

Wannan XSL fiilen zai kaiyakiya abubu XML fiilen furenwa, kuma yana a furo akwai "field" furenwa dake. Id atawu "field" furenwa a yana kama akwai gurɗe id da name na kowane HTML input furenwa. "value" furenwa a yana kama akwai gurɗe "value" na kowane HTML input furenwa. Nema, za a samu form HTML da ake gudanarwa da kowane wuri a cikin XML fiilen.

Sannan, a kuma da shaidin sabuwar sabon: "tool_updated.xsl". Fayilin XSL na yau za'a amfani domin nuna bayanin XML na an samar da. Sabon XSL na yau zai zartar da fariyanci HTML wanda ke iya yin abubuwa, wanda zai zartar da taba 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>

Gani fayilin XSL.

Fayilin ASP

A cikin fayilin "tool.xsl" yau, matsaka HTML fariyanci action na jumla ce "edittool.asp" .

"edittool.asp" bayanin tace dambobin: loadFile() ya'a wanda ke cikawa da wucewa XML bayanin, updateFile() ya'a samar da bayanin XML:

<%
function loadFile(xmlfile,xslfile)
Dim xmlDoc,xslDoc
ya kama fiyi XML
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlfile)
lanar wani XSL
set xslDoc = Server.CreateObject("Microsoft.XMLDOM")
xslDoc.async = false
xslDoc.load(xslfile)
tun wani
Response.Write(xmlDoc.transformNode(xslDoc))
end function
function updateFile(xmlfile)
Dim xmlDoc,rootEl,f
Dim i
ya kama fiyi XML
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlfile)
ya kaiwa rootEl dake kama aiki
Set rootEl = xmlDoc.documentElement
ya kama girma form
for i = 1 To Request.Form.Count
   ya kawo kama aiki na butun form
   if instr(1,Request.Form.Key(i),"btn_")=0 then
   selectSingleNode method ya iya kaiwa shirin kaiwa na kama aiki na XML
   wanda ya kama shirin kaiwa value, wanda ya kama dan field
   wanda ya kama idan kuma na kama aiki na form
   idan a kuma, ya kaiwa text dake aiki na dake kama na form
   set f = rootEl.selectSingleNode("field[@id='" & _
   Request.Form.Key(i) & "/value")
   f.Text = Request.Form(i)
   end if
next
ya kawo karewa fiyi XML
xmlDoc.save xmlfile
ya samu alamar dacewa da kaiwa kama alamar
set xmlDoc=nothing
set rootEl=nothing
set f=nothing
ta fi kula da XML fiyi a ciki da kula da 'tool_updated.xsl' don nuna baiwar da wucin gadi
loadFile xmlfile,server.MapPath("tool_updated.xsl")
end function
wa da a baiya ba XML fiyi kuma fadama a ciki, idan a baiya, ya kuma kawo XML a ciki don girma
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 可运行于任何浏览器。