XSLT - ±à¼ XML
´æ´¢ÔÚ 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>
½Ó×Å£¬Çë¿´ÏÂÃæµÄÑùʽ±í("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 Îļþ»áÑ»·±éÀú 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>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>
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 ·½·¨¿É²éѯƥÅäij¸ö²éѯµÄ XML ÎļþÖеÄij¸öµ¥Ò»½Úµã¡£ '´Ë²éѯ»áÇëÇó value ÔªËØ£¬´Ë value ÔªËØÊÇ field ÔªËØµÄ×ÓÔªËØ£¬ '¶ø´Ë field ÔªËØÓµÓÐ¿ÉÆ¥Åä±íµ¥¼¯Öе±Ç° key ÖµµÄ 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 ¿ÉÔËÐÐÓÚÈκÎä¯ÀÀÆ÷¡£