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µÄÏîÄ¿ÖУ¬µÚÒ»²½¹¤×÷¶¼ÊÇ´´½¨±ê×¼µÄÊý¾Ý¸ñʽ¡£Îª´ËÄãÒª×÷³öÒÔϾö¶¨£º
¡¡¡¡
¡¡¡¡&&&
¡¡¡¡È·¶¨Êý¾Ý£º
¡¡¡¡ÒòΪûÓбê×¼µÄ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£¨¹ØϵÐÍÊý¾Ý¿â¹ÜÀíϵͳ£©µÄϵͳ¡£
¡¡¡¡
¡¡¡¡&&&&
¡¡¡¡£¨ÓйØ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="
¡¡¡¡
¡¡¡¡
¡¡¡¡</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="src="http://img.sparks.com/Images/I-Catalog/sparks_images/sparks_ui/clearpixel.gif"/></td>
¡¡¡¡<td valign="top" bgcolor="<font face="Verdana, Arial" size="1" color="<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±êÇ©ÏòÑùʽ±íÖвåÈëÊý¾Ý¡£
¡¡¡¡