XSLT - Edit XML
- Previous page XSLT on server side
- Next page XSLT editor
ຄູ່ມູນທີ່ພັກໃນເອກະສານ XML ສາມາດຖືກແກ້ໄຂໄດ້ຜ່ານບຸກຄົນຜູ້ບໍລິຫານເວັບຊີບ.
ເປີດ, ແກ້ໄຂ ແລະ ຮັກສາ XML
ຕອນນີ້ພວກເຮົາຈະສະແດງໃຫ້ເຈົ້າເຫັນວິທີທີ່ເປີດເອກະສານ XML, ແກ້ໄຂ ແລະ ຮັກສາເອກະສານ XML ທີ່ພັກພິມໃນທີ່ບໍລິຫານ.
ພວກເຮົາຈະໃຊ້ XSL ເພື່ອປ່ຽນແປງເອກະສານ XML ເປັນຮູບແບບ HTML ຟອມ. ຄູ່ມູນຂອງສະມາພັນ XML ຈະຖືກຂຽນໄປໃນບ່ອນສະໜອງ HTML ຂອງ HTML ຟອມ. ຟອມນີ້ແມ່ນອາດແກ້ໄຂ. ຫຼັງຈາກນັ້ນຫຼັງຈາກນັ້ນຈະຖືກສົ່ງກັບຫຼັງຄະແນນຄະແນນທີ່ຖືກຄັດເລືອກຫຼັງຈາກນັ້ນຈະຖືກກວດສອບ (ບາງສ່ວນນີ້ຈະຖືກເຮັດໂດຍ 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>
ຫຼັງຈາກນັ້ນຫຼັງຈາກນັ້ນຍັງບອກວ່າຮູບແບບເຊັນແບບ ("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, ແລະສ້າງພິມຂອງ HTML input field ສຳລັບແຕ່ລະ element "field" XML. ຄູ່ຄືນ attribute id ຂອງ element field ໄດ້ສະເໜີໃຫ້ id ແລະ name attribute ຂອງ HTML input field. ຄູ່ຄືນ value element "value" ໄດ້ສະເໜີໃຫ້ attribute "value" ຂອງ HTML input field. ພາຍໃນ, ສາມາດມີ HTML form ທີ່ສາມາດແກ້ໄຂຄູ່ຄືນຂອງ XML ບັນຊີ.
ຫຼັງຈາກນັ້ນ, ພວກເຮົາມີແຜນງານຮູບແບບອີກຢ່າງ: "tool_updated.xsl". ເອກະສານ XSL ນຳໃຊ້ສະແດງຂໍ້ມູນ XML ທີ່ໄດ້ກ່າວຫາ. ແຜນງານຮູບແບບນີ້ຈະບໍ່ອອກສຽງ HTML form ແຕ່ເປັນແຜນງານ HTML table:
<?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>
ເອັສເພີ່ມ ບັນຊີ
ໃນເອກະສານ "tool.xsl" HTML form action attribute value ແມ່ນ "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 ສາມາດຊອກຫາຫນື່ງຫນື່ງທີ່ຕິດຕໍ່ກັບການຊອກຫາ ການຊອກຫາຈະຮຽກຮ້ອງ value ສິ່ງນີ້ເປັນລູກຂອງ field ບັນດາ field ປະກອບມີ id ທີ່ສາມາດຈະຕິດຕໍ່ກັບ key ຂອງຟອມກົດລວມ ຖ້າມີການຕິດຕໍ່ ຈະຕັ້ງຜົນຂອງ 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 'If the form has been submitted, update the XML file and display the results, if not submitted, convert this XML file for editing if Request.Form("btn_sub")="" then loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl") else updateFile server.MapPath("tool.xml") end if %>
Hint:If you do not know how to write ASP, please learn ourASP tutorial》。
Note:We are converting and updating the XML files located on the server. This is a cross-platform solution. The client can only obtain HTML returned from the server - while HTML can run on any browser.
- Previous page XSLT on server side
- Next page XSLT editor