¸ò§Ú¾ÇXSL¡]¤G¡^
2000-05-04¬ê§Æªì
XSL¤Jªù
¡@¡@¤W´Á§ÚÌÁ¿¨ì¥ÎCSS¡]¼hÅ|¼Ë¦¡ªí¡^¨Ó®æ¦¡¤ÆXML¤åÀÉ¡A¨ä®ÄªG¦}¤£«Ü¥O¤Hº¡·N¡C¹ê»Ú¤WCSS¥Î¨Ó®æ¦¡¤ÆHTML¼Ð°O¤ñ¸û¦X¾A¨Ç¡A¥u¬O¦]¬°¥¦Â²³æ¤~¦b¤W¨Ò¤¤ªö¥Î¡C
¡@¡@XML¦b§ó¦hªº®ÉÔ¥u¬O¤@ºØ¼Æ¾Ú¤å¥ó¡A«ç¼Ë±N¥¦Åܬ°§Ṳ́é±`©Ò¬Ý¨ìªºHTML®æ¦¡¨º¼Ëªº¤å¥ó©O¡H¦pªG§Ú̱NXML¤å¥ó¤ñ§@µ²ºc¤Æªºì®Æªº¸Ü¡A¨º¤\XSL´N¦n¤ñ¡§¿z¤l¡§»P¡§¼Ò¤l¡§¡A¿z¤l¿ï¨ú¦Û¤v»Ýnªºì®Æ¡A³o¨Çì®Æ¦A³q¹L¼Ò¤l§Î¦¨³Ì²×ªº²£«~¡GHTML¡C
¡@¡@³oÓ¼Ò¤l¤jP¬O³o¼Ë¡G§ÚÌ¥ý³]p¦nªí²{ªº¶±¡A¦A±N¨ä¤¤»Ýn±qXML¤¤Àò¨ú¼Æ¾Ú¨Ó¶ñ¥R¤º®eªº³¡¤À¡§«õ±¼¡§¡AµM¦Z¥ÎXSL»y¥y±qXML¤¤¿z¥X¬ÛÃöªº¼Æ¾Ú¨Ó¶ñ¥R¡C¤@¨¥¥HÄ´¤§¡G³oXSL¹ê»Ú¤W´N¬OHTMLªº¤@Ó¡§´ß¤l¡§¡AXML¼Æ¾Ú§Q¥Î³oÓ¡§´ß¡§¨Ó¥Í¦¨¡§¶Ç²Î¡§ªºHTML¡C
¡@¡@XML¦b®i¶}®É¬O¤@Ó¾ð§Îµ²ºc¡A§Ú̱N¾ð§Îµ²ºc¤¤¦Û©w¸q¼Ð°OºÙ¬°¸`ÂI¡A¸`ÂI¤§¶¡¦s¦b¤÷¤l¡B¥S§ÌÃö¨t¡A§ÚÌn³X°Ý¨ä¤¤ªºµ²ÂI±q®Úµ²ÂI´Nn¥H¡¨¡þ¡¨¨Ó¼h¼h¶i¤J¡C
¡@¡@¦bXSL³oӴߤ¤¡A§ÚÌn±qì®Æ®w¡H¡HXML¨½´£¨ú¬ÛÃöªº¼Æ¾Ú¡A´Nn¥Î¨ìXSL´£¨Ñªº¼Ò¦¡¤Æ¬d¸ß»y¨¥¡C©Ò¿×¼Ò¦¡¤Æ¬d¸ß»y¨¥¡A´N¬O³q¹L¬ÛÃöªº¼Ò¦¡¤Ç°t³W«hªí¹F¦¡±qXML¨½´£¨ú¼Æ¾Úªº¯S©w»y¥y¡A§Y§Ṳ́W©Ò»¡ªº¡§¿z¤l¡§¡C
°Ñ¦Ò·L³nªº¡¨XSL¶}µoªÌ«ü«n¡¨¡A§Ṳ́jP¥i±N¼Ò¦¡»y¨¥¤À¬°¤TºØ¡G
¿ï¾Ü¼Ò¦¡
< xsl:for-each >¡B< xsl:value-of >,©M < xsl:apply-templates >
´ú¸Õ¼Ò¦¡
< xsl:if > ©M< xsl:when >
¤Ç°t¼Ò¦¡
< xsl:template >
§Ú̲{¦b´N¤À§O¹ï¤§¶i¦æ¤¶²Ð¡C
¤@¡B ¿ï¾Ü¼Ò¦¡
¡@¡@¿ï¾Ü¼Ò¦¡»y¥y±N¼Æ¾Ú±qXML¤¤´£¨ú¥X¨Ó¡A¬O¤@ºØÂ²³æÀò±o¼Æ¾Úªº¤èªk¡A³o¤LӼаO³£¦³¤@ÓselectÄݩʡA¿ï¨úXML¤¤¯S©wªºµ²ÂI¦Wªº¼Æ¾Ú¡C
1¡B< xsl:for-each >
¦p¦bXML¤¤¦³³o¼Ëªº¼Æ¾Ú:
< author >
< name >¤p¬ê< /name >
< name >¬KµØ< /name >
< name >¬î¹ê< /name >
< /author >
¡@¡@§ÚÌnŪ¨ú³o¤TÓ§@ªÌ¦W¦r¡A¬O¤@Ó¤@Ó¦a«ö¡¨author/name¡¨¤èªk¨ÓŪ¨ú¶Ü¡A¥i¦³¦hÓ³o¼Ëªºname§r¡H¦pªG¦³¤@ºØµ{§Ç©Êªº»y¥y¨Ó´`ÀôŪ¨ú¦³¦h¦n°Ú¡I
¡@¡@·Q±o«Ü¹ï¡AXSL´£¨Ñ¤F³o¼Ëªº¨ã¦³µ{§Ç»y¨¥©Ê½èªº»y¥y< XSL:for-each >
¡@¡@¥Î¥¦Åª¨ú³o¤TÓ§@ªÌ¦W¦rªº¤èªk¦p¤U:
< xsl:for-each select=¡¨author/name¡¨ >
¡K¡K.
< ./xsl:for-each >
select¡AÅU¦W«ä¸q¡G¿ï¨ú¡A¥¦¥i¥H¿ï©wXML¤¤¯S©w°ß¤@ªº¼Ð°O¡A¤]¥i¥H¿ï¾Ü¬Y¤@Ãþ¬Û¦Pªº¼Ð°O¡A§Ú̺٤§¬°µ²ÂI¶°¡C
»yªk¡G
< xsl:for-each select="pattern" order-by="sort-criteria-list">
ÄݩʡG
1. select
¡@¡@®Ú¾ÚXSL¼Ë¦¡¬d¸ß¦Ò¹î¤W¤U¤å¥H¨M©wþÃþµ²ÂI¶°¡]º¡¨¬select±ø¥ó¡^¨Ï¥Î¦¹¼Ë¦¡´yz¡C§@¬°¤@ºØÂ²¤Æªºªí¥Ü´N¬O¡A¦pªG§A·Q¹ï¤åÀɤ¤ªº¬Y¤@ºØ¼Ð°Oªº¤º®eªºÅã¥Ü¤è¦¡¶i¦æ®æ¦¡¤Æ¡A´N¥i¥H±NÅýselectµ¥¤_¦¹¤¸¯Àªº¼Ð°O¦W¡C¨Ò¦p±ý¹ï¼Ð°Oxml_mark¶i¦æ®æ¦¡¤Æ¡A§Y¥i¥Î¦p¤U¤è¦¡ªí¥Ü¡G
< xsl:for-each select="xml_mark" >
< !--¼Ë¦¡©w¸q-- >
< /xsl:for-each >
2. order-by
¡@¡@¥H¤À¸¹¡];¡^¤À¹j¡B§@¬°±Æ§Ç¼Ð㪺¦Cªí¡C¦b¦Cªí¤¸¯À«e²K¥[¥[¸¹¡]+¡^ªí¥Ü«ö¦¹¼Ð°Oªº¤º®e¥H¤É§Ç±Æ§Ç¡A²K¥[´î¸¹¡]-¡^ªí¥Ü°f§Ç±Æ§Ç¡C§@¬°¤@ºØÂ²¤Æªºªí¥Ü´N¬O¡A±Æ§Ç¼Ðã¦Cªí´N¬O¥Ñselect³W©wªº¼Ð°Oªº¤l¼Ð°Oªº§Ç¦C¡A¨CӼаO¤§¶¡¥H¡];¡^¤À¹j¡C
2¡B< xsl:value-of >
< xsl:for-each >¼Ò¦¡¥u¬O¿ï¨ú¸`ÂI¡A¦}¨S¦³¨ú¥X¸`ÂIªºÈ¡A¦n¤ñµU¤l¥u¬Oª¦¨ì¤F¾ðªº¬YÓªK¤z¤W¡A¨º¤\´N¥Î< xsl:value-of
>¨ÓºK¡§³Ó§QªG¹ê¡§§a¡I
»yªk¡G
< xsl:value-of select="pattern" >´£¨ú¸`ÂIªºÈ
ÄݩʡG
select¥Î¨Ó»P·í«e¤W¤U¤å¤Ç°tªºXSL¦¡¼Ë¡C²³æªºÁ¿¡A¦pªGn¦bXSL¤åÀɬY³B´¡¤J¬YÓXML¼Ð°O¡]°²©w¬Oxml_mark¼Ð°O¡^ªº¤º®e¡A¥i¥Î¦p¤U¤è¦¡ªí¥Ü¡G
< xsl:value-of select="xml_mark" >< /xsl:value-of >
©Î
< xsl:value-of select="xml_mark"/ >
¥Ü¨Ò¡G
¡@¡@¦¹³B¤´¥H¤W´ÁªºÓ¤H²¾úªº§@¬°¨Ò¤l¡A§ÚÌ»Ýn¹ï¤å¥ó¡]Ó¤H²¾ú.xml¡^§@¤@©w×§ï¡A½T¤Áªº»¡¬O±N¨ä¤¤ªº²Ä¤G¦æ
< ?xml:stylesheet type="text/css" href="resume.css"? >
קאּ
< ?xml:stylesheet type="text/xsl" href="resume.xsl"? >
µM¦Z«Ø¥ß¤@Ó·s¤å¥ó¡Gresume.xsl¡A¨ä¤º®e¦p¤U¡G
< ?xml version="1.0" encoding="GB2312"? >
< HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl"
>
< HEAD >
< TITLE >Ó¤H²¾ú< /TITLE >
< /HEAD >< BODY >
< xsl:for-each select="resume" >
< P/ >
< TABLE border="1" cellspacing="0" >
< CAPTION style="font-size: 150%; font-weight: bold" >
Ó¤H²¾ú
< /CAPTION >
< TR >
< TH >©m¦W< /TH >< TD >< xsl:value-of select="name"/ >< /TD >
< TH >©Ê§O< /TH >< TD >< xsl:value-of select="sex"/ >< /TD >
< TH >¥Í¤é< /TH >< TD >< xsl:value-of select="birthday"/ >< /TD >
< /TR >
< TR >
< TH >§Þ¯à< /TH >< TD colspan="5" >< xsl:value-of select="skill"/ >< /TD
>
< /TR >
< /TABLE >
< /xsl:for-each >
< /BODY >
< /HTML >
¡@¡@§¹¦¨³o¨Ç¥H¦Z¦A¨ÓÅý§Ú̬ݤ@¤U¨¯¶Ô³Ò°Êªº¦¨ªG¡A«ç¤\¼Ë¡H®ÄªG¤£¿ù§a¡C§ó»ÅÁÙ¦b¦ZÀY©O¡C²{¦b§Ú̹ï¤å¥ó¡]Ó¤H²¾ú.xml¡^§@¶i¤@¨Bªº×§ï¡G
1. ¦b¼Ð°O< resume >«e²K¥[¤@Ó·s¼Ð°O< document >¡Q
2. ±N¼Ð°O¹ï< resume >< /resume >¤§¶¡ªº¤º®e¡]¥]¬A³o¤@¹ï¼Ð°O¡^´_¨î¦}Öß¶K¦b¨ä¦Z¡A¦}¦b³Ì¦Z¥Î< document >µ²§ô¡C
3. ¥HNotepad.exe¥´¶}¤å¥óresume.xsl¡A¦b¼Ð°O< HTML >¤§¦Z²K¥[¤å¦r¡G< xsl:for-each select="document"
>¡Q¦b¼Ð°O< /HTML >¤§«e²K¥[¤å¦r¡G< /xsl:for-each >¡A«O¦s¤å¥ó¡C
4. ¦bÂsÄý¾¹¤¤¥´¶}¤å¥ó¡]Ó¤H²¾ú.xml¡^¡C¬Ý¨ì¤F¤°¤\¡H¨â¥÷Ó¤H²¾ú¡I
¡@¡@´N³o¼Ë¡A§Q¥ÎXML§ÚÌ¥i¥H½s¼g¤º®e»P¼Ë¦¡§¹¦¨¤ÀÂ÷ªº¤åÀÉ¡I·íµM¡AXSL¤å¥ó¤ñ¤@¯ëªºHTML¤å¥ón´_Âø¤@¨Ç¡AµM¦Ó¤@¥¹§¹¦¨«h¥i¥Î¤_®æ¦¡¤Æ©Ò¦³¦PÃþªºXML¤åÀÉ¡C
ª`¡G¦pªG«þ¨©¥N½X¡A½Ð±NªÅ®æ§R°£
|