XSLT - Kuhariri XML

Data inayohifadhiwa katika faili ya XML inaweza kuhaririwa kwa kusoma kwenye mtangazaji wa intaneti.

Kufikia, kuhariri na kusafisha XML

Sasa, tunatukuzoa kufikia, kuhariri na kusafisha faili ya XML inayohifadhiwa kwenye mtaalamu.

Tunatufanya kusoma tabia ya XSL ya kubadilisha faili ya XML hadi katika formu ya HTML. Amani ya upeo wa uhusiano wa XML inatumika katika eneo la ingia la HTML formu. Foramu hii inaweza kuhaririwa. Baada ya kuhaririwa, data inatolewa kubalewa kwenye mtaalamu, faili ya XML inapandishwa (kutokana na ASP).

Faili ya XML na faili ya XSL

Kwanza, angalia faili ya XML ambayo itatumiwa ("tool.xml"):

<?xml version="1.0" encoding="ISO-8859-1"?>
<tool>
  <field id="prodName">
    <value>MBUURI HG2606</value> 
  </field>
  <field id="prodNo">
    <value>32456240</value> 
  </field>
  <field id="price">
    <value>$30.00</value> 
  </field>
</tool>

Angalia faili ya XML.

Kisha, angalia mifano ya tabia ya kufaa (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="haririfaa.asp">
<h2>Info ya Kifaa (hariri):</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" />


</body>
</html>
</xsl:template>
</xsl:stylesheet>

Angalia faili ya XSL.

上面这个 XSL 文件会循环遍历 XML 文件中的元素,并为每个 XML "field" 元素创建一个输入域。field 元素的 id 属性的值被添加到每个 HTML 输入域的 id 和 name 属性。"value" 元素的值被添加到每个 HTML 输入域的 "value" 属性。结果是,可以得到一个包含 XML 文件中值的可编辑的 HTML 表单。

Kisha, tunamosha mifano ya kifupi ya ujenzi ya klabu: "tool_updated.xsl". Faili ya XSL hii inatumiwa kusoma data ya XML ya kipindi. Faili hii haikutafsiri formu ya HTML inayofikia, bali inatoa tabia ya HTML inayofikia kwa kuzungumza:

<?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>Maafaka ya Kupangilia Kupata:</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>

Angalia faili ya XSL.

Faili ya ASP

Kwenye faili "tool.xsl", matokeo wa sababu ya kipindi cha HTML ni "edittool.asp" .

Pembaada "edittool.asp" kina inaonyesha mifano: loadFile() inaumuisha na inasasisha faili XML, updateFile() inaumuisha faili XML:

<%
function loadFile(xmlfile,xslfile)
Dim xmlDoc,xslDoc
Kulinda mifano ya XML
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlfile)
Kulinda mifano ya XSL
set xslDoc = Server.CreateObject("Microsoft.XMLDOM")
xslDoc.async = false
xslDoc.load(xslfile)
Kuchukua mifano
Response.Write(xmlDoc.transformNode(xslDoc))
end function
function updateFile(xmlfile)
Dim xmlDoc,rootEl,f
Dim i
Kulinda mifano ya XML
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlfile)
Kuwa na rootEl kama mbinguni wa kina
Set rootEl = xmlDoc.documentElement
Kuondoa formu ya kina
for i = 1 To Request.Form.Count
   Kupunguza elementi za kibonddo ya formu
   if instr(1,Request.Form.Key(i),"btn_")=0 then
   Method ya selectSingleNode inaweza kutafuta mwingine wa mifano ya XML ambao inafikia kwenye mifano
   Tafuta elementi ya value, elementi hii ni mwanafamilia wa elementi ya field
   Field hii ina id ya inayomtumika kwa thamani ya sehemu ya formu hiyo
   Kama inafikia, aseta uga text kwa thamani ya sehemu ya formu hiyo
   set f = rootEl.selectSingleNode("field[@id='" & _
   Request.Form.Key(i) & "/value")
   f.Text = Request.Form(i)
   end if
next
Kuhifadhi mifano ya XML ya zilizohusishwa
xmlDoc.save xmlfile
Kupunguza taarifa zote za kina
set xmlDoc=nothing
set rootEl=nothing
set f=nothing
Kuwa na kichwa cha mifano cha XML ilitakiwa na mifano ya kichwa cha kina, kwa hivyo kina kina kinaweza kuona taarifa zilizohusishwa
loadFile xmlfile,server.MapPath("tool_updated.xsl")
end function
'Kama muhtasari haujafikii, sasisha faili ya XML na tafadhali tawala matokeo, kama haujafikii, kubadilisha faili ya XML ili kuhariri
if Request.Form("btn_sub")="" then
loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl")
else
updateFile server.MapPath("tool.xml")
end if
%>

Mafanikio:Kama huu haujifahamisha kuhariri ASP, tafadhali mafunzo yako hii:Mafunzo ya ASP》。

Mawazo:Wanakubadilisha na kuhakikisha mafungu ya XML ambayo imewekwa kwenye kifungu cha kifungu. Hii ni matokeo ya muhimu wa mawingu. Mtu wa kifungu cha kifungu kina kufikia kina ya HTML iliyotumika na kila kifungu cha kifungu.