ఎక్స్ఎస్ఎల్టి - ఎక్స్ఎమ్ఎల్ ఎడిట్

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>

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>Tool Information (edit):</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 అట్రిబ్యూట్ యొక్క విలువ ప్రతి HTML ఇన్పుట్ డొమైన్ యొక్క id మరియు name అట్రిబ్యూట్లకు జోడిస్తారు. "value" ఎలిమెంట్ యొక్క విలువ ప్రతి HTML ఇన్పుట్ డొమైన్ యొక్క "value" అట్రిబ్యూట్కు జోడిస్తారు. తత్ఫలితంగా, XML ఫైల్లో ఉన్న విలువలను కలిగి ఉండే ఎడిటబుల్ HTML ఫారమ్ పొందవచ్చు:

అప్పుడు, మనకు రెండవ స్టైల్ షీట్ ఉంది: "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
ఎక్స్మెల్ ఫైల్‌ను లోడ్ చేయండి
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
ఎక్స్మెల్ ఫైల్‌ను లోడ్ చేయండి
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlfile)
rootEl వ్యవస్థాపక ఎలమెంట్‌ను సెట్ చేయండి
Set rootEl = xmlDoc.documentElement
ఫారమ్ కోలెక్షన్‌ను చుట్టూ విశ్లేషించండి
for i = 1 To Request.Form.Count
   ఫారమ్‌లో బటన్ ఎలమెంట్లను తొలగించండి
   if instr(1,Request.Form.Key(i),"btn_")=0 then
   selectSingleNode మార్గదర్శకం ఒక క్వరీని అనుగుణంగా మీరు మీరు మీరు ఒక ఎక్స్మెల్ ఫైల్‌లో ఒక ఏకమైన నోడ్‌ను కోరవచ్చు
   ఈ క్వరీ వాల్యూ ఎలమెంట్ ను అభ్యర్ధిస్తుంది, ఈ వాల్యూ ఎలమెంట్ ఫీల్డ్ ఎలమెంట్ యొక్క పితుకుడు ఉంటుంది
   ఈ field ఎలమెంట్ ఫారమ్‌లో ప్రస్తుత కీ విలువను సరిపోలే ఐడి అట్రిబ్యూట్ కలిగి ఉంటుంది
   అనుగుణంగా మీరు మీరు ఫారమ్‌లో ప్రస్తుత కీ విలువను సెట్ చేయండి
   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 可运行于任何浏览器。