¡¡¡¡×÷Õß:ÂíÏþÄþ¡¡¡¡
¡¡¡¡xml£¨¿ÉÀ©Õ¹±ê¼ÇÓïÑÔ£©¿´ÆðÀ´¿ÉÄÜÏñijÖÖw3c±ê×¼¡ª¡ªÏÖÔÚûÓÐʲôʵ¼ÊÓ°Ï죬¼´Ê¹ÒÔºóÄÜÅÉÉÏÓ󡣬ҲÊǺܾÃÒÔºóµÄÊ¡£µ«Êµ¼ÊÉÏ£¬ËüÏÖÔÚÒѾµÃµ½ÁËÓ¦Óá£ËùÒÔ£¬²»ÒªµÈµ½xmlÒѱ»¼Ó½øÁËÄã×îϲ°®µÄhtml±à¼Æ÷ÖвſªÊ¼Ê¹ÓÃËü¡£ËüÏÖÔھͿÉÒÔ½â¾ö¸÷ÖÖÄÚ²¿ÎÊÌâºÍb2bϵͳÎÊÌâ¡£
¡¡¡¡ÔÚsparks.com£¬ÎÒÃÇʹÓÃxmlÀ´±ê×¼»¯´Ójava¶ÔÏóµ½htmlÊý¾ÝÏÔʾµÈ²»Í¬ÏµÍ³Ö®¼äµÄÊý¾Ý±íʾ¡£
¡¡¡¡ÌرðÐèÒªÖ¸³öµÄÊÇ£¬ÎÒÃÇ·¢ÏÖ£¬Ö»ÒªÒԷdz£»ù±¾µÄxml½á¹¹À´ÊµÏÖ±ê×¼»¯£¬¾Í¿ÉÒÔ¸üÈÝÒ׵ع²ÏíºÍ²Ù×÷Êý¾Ý¡£ÔÚÕâÒ»¹ý³ÌÖУ¬ÎÒÃÇ·¢ÏÖÁËʹÓÃxmlµÄºÜ¶àÓÐЧ·½·¨¡£ÏÂÃæÏêϸ½éÉÜÎÒÃÇÏÖÔÚµÄÓ¦ÓÃÇé¿ö¡£
¡¡¡¡±ê×¼»¯
¡¡¡¡ÔÚʹÓÃxml֮ǰ£¬½¨Á¢ÓëÄãҪʹÓõÄÐÅÏ¢²»Í¬µÄxmlÊý¾Ý¸ñʽ¡£
¡¡¡¡Éú³É¶¯Ì¬xml
¡¡¡¡´ÓÊý¾Ý¿âÖÐÉú³Éhtml²¢²»ÐÂÏÊ£¬µ«Éú³ÉxmlÈ´ºÜÐÂÏÊ¡£ÕâÀïÎÒÃǽéÉܾßÌåµÄÉú³É²½Öè¡£
¡¡¡¡ÓÃxsl×÷Ϊģ°åÓïÑÔ
¡¡¡¡xsl£¨¿ÉÀ©Õ¹Ñùʽ±íÓïÑÔ£©ÊǶ¨ÒåxmlÊý¾ÝÏÔʾ¸ñʽµÄºÃ·½·¨£¬Èç¹ûд³É¼¸¸ö¾²Ì¬Ä£°å»á¸üÓÐЧ¡£
¡¡¡¡Éú³Éhtml
¡¡¡¡xml¼ÓÉÏxsl¾ÍµÈÓÚhtml¡£ÕâÌýÆðÀ´Ëƺõ²»¶Ô£¬µ«Óû§Ëù¼ûµÄÎÒÃǵÄhtmlÒ³ÃæÆäʵ¾ÍÊÇxmlºÍxsl¹²Í¬²úÉúµÄЧ¹û¡£
¡¡¡¡
¡¡¡¡Ò»¡¢±ê×¼»¯
¡¡¡¡xmlµÄÄÜÁ¦À´×ÔÓÚËüµÄÁé»îÐÔ¡£µ«²»ÐÒµÄÊÇ£¬ËüÓÐʱ̫Áé»îÁË£¬ÒÔÖÁÓÚÄã»áÃæ¶ÔÒ»¸ö¿Õ°×µÄÒ³Ã棬·¢³î¸ÃÔõô½â¾öÎÊÌâ¡£
¡¡¡¡ÔÚÈκÎxmlµÄÏîÄ¿ÖУ¬µÚÒ»²½¹¤×÷¶¼ÊÇ´´½¨±ê×¼µÄÊý¾Ý¸ñʽ¡£Îª´ËÄãÒª×÷³öÒÔϾö¶¨£º
¡¡¡¡• ÒªÉæ¼°ÄÄЩÊý¾Ý
¡¡¡¡• ÊÇ·ñҪʹÓÃdtd£¨ÎļþÀàÐͶ¨Ò壩
¡¡¡¡• ÊÇ·ñҪʹÓÃdom£¨Îĵµ¶ÔÏóÄ£ÐÍ£©»òsax£¨xmlµÄ¼ò»¯api£©½âÎö
¡¡¡¡È·¶¨Êý¾Ý£º
¡¡¡¡ÒòΪûÓбê×¼µÄxml¸ñʽ£¬¿ª·¢Õß¿ÉÒÔ×ÔÓɵؿª·¢×Ô¼ºµÄ¸ñʽ¡£È»¶ø£¬Èç¹ûÄãµÄ¸ñʽֻÄܱ»Ò»¸öÓ¦ÓóÌÐòʶ±ð£¬ÄÇôÄãÖ»ÄÜÔËÐÐÕâ¸ö³ÌÐòÀ´Ê¹Óøøñʽ¡£Èç¹û»¹ÓÐÆäËû³ÌÐòÒ²ÄܶÁ¶®ÄãµÄxml¸ñʽ£¬ÄÇÏÔÈ»»á¸üÓаïÖú¡£Èç¹ûij¸öxml¸ñʽ±»Ð޸ģ¬ÔòʹÓÃËüµÄϵͳ¿ÉÄÜÒ²ÐèÒª±»Ð޸ģ¬ËùÒÔÄãÓ¦¸Ã½¨Á¢¾¡¿ÉÄÜÍêÕûµÄ¸ñʽ¡£ÒòΪ´ó¶àÊýϵͳºöÂÔËüÃÇÎÞ·¨Ê¶±ðµÄ±êÇ©£¬ËùÒԸıäÒ»¸öxml¸ñʽµÄ×ȫµÄ·½·¨ÊÇÌí¼Ó±êÇ©£¬¶ø²»ÊÇÐ޸ıêÇ©¡£
¡¡¡¡µ¥»÷´Ë´¦²é¿´xmlÊý¾Ý¸ñʽʵÀý
¡¡¡¡ÔÚsparks.com£¬ÎÒÃDz鿴Á˲»Í¬µÄ²úƷչʾÐèÒªµÄËùÓвúÆ·Êý¾Ý¡£¾¡¹Ü²¢²»ÊÇËùÓеÄÒ³Ã涼ʹÓÃÈ«²¿Êý¾Ý£¬µ«ÎÒÃÇ»¹ÊÇÓÉ´Ë¿ª·¢³öÊÊÓÃÓÚËùÓÐÊý¾ÝµÄ·Ç³£ÍêÕûµÄxmlÊý¾Ý¸ñʽ¡£ÀýÈ磬ÎÒÃǵIJúÆ·Ã÷ϸÐÅÏ¢Ò³ÃæÏÔʾµÄÊý¾ÝÒª±È²úÆ·ä¯ÀÀÒ³Ãæ¶à¡£È»¶ø£¬ÎÒÃÇÔÚÕâÁ½ÖÖÇé¿öÏÂÈÔȻʹÓÃÏàͬµÄÊý¾Ý¸ñʽ£¬ÒòΪÿ¸öÒ³ÃæµÄxslÄ£°å¶¼Ö»Ê¹ÓÃËüËùÐèÒªµÄ×ֶΡ£
¡¡¡¡ÊÇ·ñʹÓÃdtd
¡¡¡¡ÔÚsparks.com£¬ÎÒÃÇʹÓÃ×éÖ¯Á¼ºÃµÄxml£¬¶ø²»Ê¹Óýö½öÊÇÕýÈ·µÄxml£¬ÒòΪǰÕß²»ÐèÒªdtd¡£dtdÔÚÓû§µã»÷ºÍ¿´µ½Ò³ÃæÖ®¼ä¼ÓÈëÁËÒ»¸ö´¦Àí²ã¡£ÎÒÃÇ·¢ÏÖÕâÒ»²ãÐèҪ̫¶àµÄ´¦Àí¡£µ±È»£¬ÔÚÒÔxml¸ñʽÓëÆäËû¹«Ë¾Í¨ÐÅʱ£¬Ê¹ÓÃdtd»¹ÊǺܲ»´íµÄ¡£ÒòΪdtdÄÜÔÚ·¢ËͺͽÓÊÜʱÄܱ£Ö¤Êý¾Ý½á¹¹ÕýÈ·¡£
¡¡¡¡Ñ¡Ôñ½âÎöÒýÇæ
¡¡¡¡ÏÖÔÚ£¬¿ÉÒÔʹÓõĽâÎöÒýÇæÓкü¸¸ö¡£Ñ¡ÔñÄÄÒ»¸ö¼¸ºõÍêÈ«È¡¾öÓÚÄãµÄÓ¦ÓÃÐèÒª¡£Èç¹ûÄã¾ö¶¨Ê¹ÓÃdtd£¬ÄÇôÕâ¸ö½âÎöÒýÇæ±ØÐëÄÜʹÄãµÄxml±»dtdÑéÖ¤¡£Äã¿ÉÒÔ½«ÑéÖ¤Áí·Åµ½Ò»¸ö½ø³ÌÖУ¬µ«ÄÇÑù»áÓ°ÏìÐÔÄÜ¡£
¡¡¡¡saxºÍdomÊÇÁ½¸ö»ù±¾µÄ½âÎöÄ£ÐÍ¡£sax»ùÓÚʼþ£¬ËùÒÔÔÚxml±»½âÎöʱ£¬Ê¼þ±»·¢Ë͸øÒýÇæ¡£½ÓÏÂÀ´£¬Ê¼þÓëÊä³öÎļþͬ²½¡£dom½âÎöÒýÇæΪ¶¯Ì¬xmlÊý¾ÝºÍxslÑùʽ±í½¨Á¢²ã´ÎÊ÷×´½á¹¹¡£Í¨¹ýËæ»ú·ÃÎÊdomÊ÷£¬¿ÉÒÔÌṩxmlÊý¾Ý£¬¾ÍÏóÓÉxslÑùʽ±íÀ´¾ö¶¨Ò»Ñù¡£saxÄ£ÐÍÉϵÄÕùÂÛÖ÷Òª¼¯ÖÐÓÚ¶Ôdom½á¹¹µÄÄÚ´æ½µµÍ¹ý¶ÈºÍ¼Ó¿ìxslÑùʽ±í½âÎöʱ¼äËõ¶Ì·½Ãæ¡£
¡¡¡¡È»¶ø£¬ÎÒÃÇ·¢ÏÖʹÓÃsaxµÄºÜ¶àϵͳ²¢Ã»Óгä·Ö·¢»ÓËüµÄÄÜÁ¦¡£ÕâЩϵͳÓÃËüÀ´½¨Á¢dom½á¹¹²¢Í¨¹ýdom½á¹¹À´·¢ËÍʼþ¡£ÓÃÕâÖÖ·½·¨£¬ÔÚÈκÎxml´¦Àí֮ǰ±ØÐë´ÓÑùʽ±íÖн¨Á¢dom£¬ËùÒÔÐÔÄÜ»áϽµ¡£
¡¡¡¡¶þ¡¢Éú³É¶¯Ì¬xml
¡¡¡¡Ò»µ©½¨Á¢ÁËxml¸ñʽ£¬ÎÒÃÇÐèÒªÒ»ÖÖÄܹ»½«Æä´ÓÊý¾Ý¿âÖж¯Ì¬ÒÆÖ²µÄ·½·¨¡£
¡¡¡¡Éú³ÉxmlÎĵµÏà¶ÔÀ´Ëµ±È½Ï¼òµ¥£¬ÒòΪËüÖ»ÐèÒªÒ»¸ö¿ÉÒÔ´¦Àí×Ö·û´®µÄϵͳ¡£ÎÒÃǽ¨Á¢ÁËÒ»¸öʹÓÃjava servlet¡¢enterprise javabean server¡¢jdbcºÍrdbms£¨¹ØϵÐÍÊý¾Ý¿â¹ÜÀíϵͳ£©µÄϵͳ¡£
¡¡¡¡• servletͨ¹ý°ÑÉú³ÉxmlÎĵµµÄÈÎÎñ½»¸øenterprise javabean (ejb)À´´¦Àí²úÆ·ÐÅÏ¢ÇëÇó¡£
¡¡¡¡• ejbʹÓÃjdbc´ÓÊý¾Ý¿âÀï²éѯËùÐèµÄ²úÆ·ÏêϸÐÅÏ¢¡£
¡¡¡¡• ejbÉú³ÉxmlÎļþ²¢°ÑËü´«µÝ¸øservlet¡£
¡¡¡¡• servletµ÷ÓýâÎöÒýÇ棬´ÓxmlÎļþºÍ¾²Ì¬µÄxslÑùʽ±íÖд´½¨htmlÊä³ö¡£
¡¡¡¡£¨ÓйØxslÓ¦ÓõÄÆäËûÐÅÏ¢£¬Çë²ÎÔÄÓÃxsl×÷Ϊģ°åÓïÑÔ¡££©
¡¡¡¡Éú³ÉxmlµÄÀý×Ó
¡¡¡¡ÔÚjavaÖд´½¨xmlÎĵµ×Ö·û´®µÄÕæÕý´úÂë¿ÉÒԷֳɼ¸¸ö·½·¨ºÍÀà¡£
¡¡¡¡Æô¶¯xmlÉú³É¹ý³ÌµÄ´úÂë·ÅÔÚejb·½·¨Àï¡£ÕâһʵÀý»áÁ¢¼´´´½¨Ò»¸östringbuffer£¬ÒÔ±ã´æ´¢Éú³ÉµÄxml×Ö·û´®¡£
¡¡¡¡stringbuffer xml = new stringbuffer();
¡¡¡¡xml.append(xmlutils.begindocument("/browse_find/browse.xsl", "browse", request));
¡¡¡¡xml.append(product.toxml());
¡¡¡¡xml.append(xmlutils.enddocument("browse");
¡¡¡¡out.print(xml.tostring());
¡¡¡¡
¡¡¡¡ºóÃæµÄÈý¸öxml.append()±äÔª±¾Éí¾ÍÊǶÔÆäËû·½·¨µÄµ÷Óá£
¡¡¡¡²úÉúÎļþÍ·
¡¡¡¡µÚÒ»¸ö¸½¼Ó·½·¨µ÷ÓÃxmlutilsÀàÀ´²úÉúxmlÎļþÍ·¡£ÎÒÃǵÄjava servletÖеĴúÂëÈçÏ£º
¡¡¡¡public static string begindocument(string stylesheet, string page)
¡¡¡¡{
¡¡¡¡ stringbuffer xml = new stringbuffer();
¡¡¡¡ xml.append("<?xml version="1.0"?>
")
¡¡¡¡ .append("<?xml-stylesheet href="")
¡¡¡¡ .append(stylesheet).append(""")
¡¡¡¡ .append(" type ="text/xsl"?>
");
¡¡¡¡ xml.append("<").append(page).append(">
");
¡¡¡¡ return xml.tostring();
¡¡¡¡}
¡¡¡¡Õâ¶Î´úÂëÉú³ÉÁËxmlÎļþÍ·¡£<?xml>±êÇ©°Ñ±¾Îļþ¶¨ÒåΪ֧³Ö1.0°æ±¾µÄxmlÎļþ¡£µÚ¶þÐдúÂëÖ¸ÏòÓÃÒÔÏÔʾÊý¾ÝµÄÕýÈ·Ñùʽ±íµÄλÖá£×îºó°üÀ¨½øÈ¥µÄÊÇÏ±êÇ©£¨±¾ÊµÀýÖÐΪ<browse>£©¡£ÔÚÎļþĩβ£¬Ö»ÓÐ<browse>±êÇ©ÐèÒª±»¹Ø±Õ¡£
¡¡¡¡<?xml version="1.0"?> <?xml-stylesheet href="/browse_find/browse.xsl" type="text/xsl"?> <browse>
¡¡¡¡ÌîÈë²úÆ·ÐÅÏ¢
¡¡¡¡Íê³ÉÁËÎļþÍ·ºó£¬¿ØÖÆ·½·¨»áµ÷ÓÃjava¶ÔÏóÀ´²úÉúËüµÄxml¡£±¾ÀýÖе÷ÓõÄÊÇproduct¶ÔÏó¡£product¶ÔÏóʹÓÃÁ½¸ö·½·¨À´²úÉúËüµÄxml±íʾ¡£µÚÒ»¸ö·½·¨toxml()ͨ¹ý²úÉú<product>ºÍ</product>±êÇ©À´½¨Á¢product½Úµã¡£È»ºóËü»áµ÷ÓÃinternalxml()£¬ÕâÑù¾ÍÄÜÌṩ²úÆ·xmlËùÐèµÄÄÚÈÝ¡£internalxml()ÊÇһϵÁеÄstringbuffer.append()µ÷Óá£stringbufferÒ²±»×ª»»³É×Ö·û´®²¢·µ»Ø¸ø¿ØÖÆ·½·¨¡£
¡¡¡¡public string toxml()
¡¡¡¡ {
¡¡¡¡ stringbuffer xml = new stringbuffer("<product>
");
¡¡¡¡ xml.append(internalxml());
¡¡¡¡ xml.append("</product>
");
¡¡¡¡ return xml.tostring();
¡¡¡¡ }
¡¡¡¡public string internalxml()
¡¡¡¡ {
¡¡¡¡ stringbuffer xml = new
¡¡¡¡ stringbuffer(" ")
¡¡¡¡ .append(producttype).append("
");
¡¡¡¡ xml.append(" ").append(idvalue.trim())
¡¡¡¡ .append("
");
¡¡¡¡ xml.append(" ").append(idname.trim())
¡¡¡¡ .append("
");
¡¡¡¡ xml.append(" ").append(page.trim())
¡¡¡¡ .append("
");
¡¡¡¡……?
¡¡¡¡ xml.append(" ").append(amount).append("
");
¡¡¡¡ xml.append(" ").append(vendor).append("
");
¡¡¡¡ xml.append("
");
¡¡¡¡ xml.append(" ").append(pubdesc).append("
");
¡¡¡¡ xml.append(" ").append(vendesc).append("
";
¡¡¡¡……?
¡¡¡¡ return xml.tostring();
¡¡¡¡}
¡¡¡¡
¡¡¡¡¹Ø±ÕÎļþ
¡¡¡¡×îºó£¬xmlutils.enddocument()·½·¨±»µ÷Óá£Õâ¸öµ÷ÓùرÕxml±êÇ©£¨±¾ÀýÖÐΪ£©£¬²¢×îÖÕÍê³É¼Ü¹¹ºÃµÄxmlÎļþ¡£À´×Ô¿ØÖÆ·½·¨µÄÕû¸östringbufferҲת»»³É×Ö·û´®£¬²¢·µ»Ø¸ø´¦Àí×î³õhttpÇëÇóµÄservlet¡£
¡¡¡¡Èý¡¢ÓÃxsl×÷Ϊģ°åÓïÑÔ
¡¡¡¡ÎªÁ˵õ½htmlÊä³ö£¬ÎÒÃÇ°ÑÉú³ÉµÄxmlÎļþºÍ¿ØÖÆxmlÊý¾ÝÈçºÎ±íʾµÄxslÄ£°åÏà½áºÏ¡£ÎÒÃǵÄxslÄ£°åÓɾ«ÐÄ×éÖ¯µÄxslºÍhtml±êÇ©×é³É¡£
¡¡¡¡¿ªÊ¼½¨Ä£°å
¡¡¡¡ÎÒÃǵÄxslÄ£°å¿ªÊ¼²¿·ÖÓëÏÂÃæÕâ¶Î´úÂëÀàËÆ¡£µÚÒ»ÐдúÂëΪ±ØÐè´úÂ룬½«±¾Îļþ¶¨ÒåΪxslÑùʽ±í¡£xmlns:xsl=ÊôÐÔÒýÓñ¾ÎļþËùʹÓõÄxmlÃû³Æ¿Õ¼ä£¬¶øversion=ÊôÐÔÔò¶¨ÒåÃû³Æ¿Õ¼äµÄ°æ±¾ºÅ¡£ÔÚÎļþµÄĩ⣬ÎÒÃǹرձêÇ©¡£
¡¡¡¡ÓÉ<xsl:template>¿ªÊ¼µÄµÚ¶þÐдúÂëÈ·¶¨ÁËxslÄ£°åµÄģʽ¡£matchÊôÐÔÊDZØÐèµÄ£¬ÔÚÕâÀïÖ¸Ïòxml±êÇ©<basketpage>¡£ÔÚÎÒÃǵÄϵͳÀ<basketpage>±êÇ©Àï°üº¬<product> ±êÇ©£¬ÕâʹµÃxslÄ£°å¿ÉÒÔ·ÃÎÊǶÔÚ<product>±êÇ©ÄڵIJúÆ·ÐÅÏ¢¡£ÎÒÃÇÓÖÒ»´Î±ØÐëÔÚÎļþĩβ¹Ø±Õ<xsl:template>±êÇ©¡£
¡¡¡¡½ÓÏÂÀ´£¬ÎÒÃÇÀ´¿´Ò»¿´×éÖ¯Á¼ºÃµÄhtml¡£ÓÉÓÚËü½«±»xml½âÎöÒýÇæ´¦Àí£¬ËùÒÔ±ØÐë·ûºÏ×éÖ¯Á¼ºÃµÄxmlµÄËùÓйæÔò¡£´Ó±¾ÖÊÉÏÀ´½²£¬ÕâÒâζ×ÅËùÓеĿªÊ¼±êÇ©±ØÐëÓжÔÓ¦µÄ½áÊø±êÇ©¡£ÀýÈ磬ͨ³£²»±»½áÊøµÄ<p>±êÇ©£¬±ØÐëÓÃ</p>¹Ø±Õ¡£
¡¡¡¡
¡¡¡¡<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform"
¡¡¡¡version="1.0">
¡¡¡¡<xsl:template match="basketpage">
¡¡¡¡<html>
¡¡¡¡<head>
¡¡¡¡<title>shopping bag / adjust quantity</title>
¡¡¡¡</head>
¡¡¡¡<body bgcolor="#cccc99" bgproperties="fixed" link="#990000" vlink="#990000">
¡¡¡¡<br>
¡¡¡¡?br> </xsl:template>
¡¡¡¡</xsl:stylesheet>
¡¡¡¡
¡¡¡¡ÔÚÄ£°åµÄÖ÷ÌåÄÚ£¬Óкܶàxsl±êÇ©±»ÓÃÓÚΪÊý¾Ý±íʾÌṩÂß¼¡£ÏÂÃæ½âÊÍÁ½¸ö³£ÓõıêÇ©¡£
¡¡¡¡choose
¡¡¡¡<xsl:choose>±êÇ©ÀàËÆÓÚ´«Í³±à³ÌÓïÑÔÖÐif-then-else½á¹¹µÄ¿ªÊ¼²¿·Ö¡£ÔÚxslÖУ¬choose±êÇ©±íʾÔÚ´úÂë½øÈëµÄ²¿·ÖÖУ¬¸³Öµ½«´¥·¢¶¯×÷µÄ·¢Éú¡£ÓµÓи³ÖµÊôÐÔµÄ<xsl:when>±êÇ©¸úÔÚchoose±êÇ©ºóÃæ¡£Èç¹û¸³ÖµÊÇÕýÈ·µÄ£¬Î»ÓÚ<xsl:when>µÄ¿ªÊ¼ºÍ½áÊø±êÇ©Ö®¼äµÄÄÚÈݽ«±»Ê¹Óá£Èç¹û¸³Öµ´íÎ󣬾ÍʹÓÃ<xsl:otherwise>µÄ¿ªÊ¼ºÍ½áÊø±êÇ©Ö®¼äµÄÄÚÈÝ¡£Õû¸ö²¿·ÖÓÃ</xsl:choose>À´½áÊø¡£
¡¡¡¡ÔÚÕâ¸öÀý×ÓÀwhen±êÇ©»áΪquantity±êÇ©¼ì²éxml¡£Èç¹ûquantity±êÇ©ÀﺬÓÐֵΪÕæµÄerrorÊôÐÔ£¬quantity±êÇ©½«»áÏÔʾÁÐÔÚÏÂÃæµÄ±í¸ñµ¥Ôª¡£Èç¹ûÊôÐÔµÄÖµ²»ÎªÕ棬xsl½«»áÏÔʾotherwise±êÇ©¼äµÄÄÚÈÝ¡£ÔÚÏÂÃæµÄʵÀýÀÈç¹ûerrorÊôÐÔ²»Õ棬Ôòʲô¶¼²»»á±»ÏÔʾ¡£
¡¡¡¡<xsl:choose>
¡¡¡¡<xsl:when test="quantity[@error='true']">
¡¡¡¡<td bgcolor="#ffffff"><img height="1" width="1" src="http://img.sparks.com/images/i-catalog/sparks_images/sparks_ui/clearpixel.gif"/></td>
¡¡¡¡<td valign="top" bgcolor="#ffffff" colspan="2"><font face="verdana, arial" size="1" color="#cc3300"><b>*not enough in stock. your quantity was adjusted accordingly.</b></font></td>
¡¡¡¡</xsl:when>
¡¡¡¡<xsl:otherwise>
¡¡¡¡</xsl:otherwise>
¡¡¡¡</xsl:choose>
¡¡¡¡
¡¡¡¡for-each
¡¡¡¡<xsl:for-each>±êÇ©¿ÉÒÔÓÃÀ´¶ÔÏàËÆxmlÊý¾ÝµÄ¶àÖÖÇé¿öÓ¦ÓÃͬһ¸öÑùʽ±í¡£¶ÔÓÚÎÒÃÇÀ´Ëµ£¬¿ÉÒÔ´ÓÊý¾Ý¿âÖÐÈ¡³öһϵÁвúÆ·ÐÅÏ¢£¬²¢ÔÚwebÒ³ÉϽøÐÐͳһ¸ñʽ»¯¡£ÕâÀïÓÐÒ»¸öÀý×Ó£º
¡¡¡¡<xsl:for-each select="package">
¡¡¡¡<xsl:apply-templates select="product"/>
¡¡¡¡</xsl:for-each>
¡¡¡¡
¡¡¡¡for-each Ñ»·ÔÚ³ÌÐòÓöµ½±êǩʱ¿ªÊ¼¡£Õâ¸öÑ»·½«ÔÚ³ÌÐòÓöµ½±êǩʱ½áÊø¡£Ò»µ©Õâ¸öÑ»·ÔËÐУ¬Ã¿´Î±êÇ©³öÏÖʱ¶¼»áÓ¦ÓÃÕâ¸öÄ£°å¡£
¡¡¡¡ËÄ¡¢Éú³Éhtml
¡¡¡¡½«À´µÄijһʱ¿Ì£¬ä¯ÀÀÆ÷½«»á¼¯³Éxml½âÎöÒýÇæ¡£µ½ÄÇʱ£¬Äã¿ÉÒÔÖ±½ÓÏòä¯ÀÀÆ÷·¢ËÍxmlºÍxslÎļþ£¬¶øä¯ÀÀÆ÷Ôò¸ù¾ÝÑùʽ±íÖÐÁгöµÄ¹æÔòÏÔʾxmlÊý¾Ý¡£²»¹ý£¬ÔÚ´Ë֮ǰ¿ª·¢ÕßÃǽ«²»µÃ²»ÔÚËûÃÇ·þÎñÆ÷¶ËµÄϵͳÀï´´½¨½âÎö¹¦ÄÜ¡£
¡¡¡¡ÔÚsparks.com£¬ÎÒÃÇÒѾÔÚjava servletÀO³ÉÁËÒ»¸öxml½âÎöÆ÷¡£Õâ¸ö½âÎöÆ÷ʹÓÃÒ»ÖÖ³ÆΪxslt (xsl transformation)µÄ»úÖÆ£¬°´xsl±êÇ©µÄ˵Ã÷ÏòxslÄ£°åÖÐÌí¼ÓxmlÊý¾Ý¡£
¡¡¡¡µ±ÎÒÃǵÄjava servlet´¦ÀíhttpÇëÇóʱ£¬servlet¼ìË÷¶¯Ì¬Éú³ÉµÄxml£¬È»ºóxml±»´«¸ø½âÎöÒýÇæ¡£¸ù¾ÝxmlÎļþÖеÄÖ¸Á½âÎöÒýÇæ²éÕÒÊʵ±µÄxslÑùʽ±í¡£½âÎöÆ÷ͨ¹ýdom½á¹¹´´½¨htmlÎļþ£¬È»ºóÕâ¸öÎļþÔÙ´«Ë͸ø·¢³öhttpÇëÇóµÄÓû§¡£
¡¡¡¡Èç¹ûÄãÑ¡ÔñʹÓÃsaxÄ£ÐÍ£¬½âÎöÆ÷»áͨ¶ÁxmlÔ´³ÌÐò£¬ÎªÃ¿¸öxml±êÇ©´´½¨Ò»¸öʼþ¡£Ê¼þÓëxmlÊý¾Ý¶ÔÓ¦£¬²¢×îÖÕ°´xsl±êÇ©ÏòÑùʽ±íÖвåÈëÊý¾Ý¡£