4.XPathµÄÓï·¨
ÎÒÃÇÔÚÇ°ÃæÒѾÌáµ½¹ý£¬XPathÊÇÓÃÀ´°ïÖúXSLTÔÚXMLÔ´ÎĵµÖвéÕÒ¶¨Î»ÐÅÏ¢µÄÓïÑÔ¡£ÔÚʵ¼ÊʹÓùý³ÌÖУ¬XPathºÍXSLT×ÜÊÇ»ìÔÚÒ»ÆðʹÓã¬ÔÚÉÏÃæÒ»ÕµÄÓï·¨Àý×ÓÖÐÎÒÃÇÒѾÓÐʹÓõ½XPathµÄÓï·¨£¬Ö»ÊÇûÓÐÃ÷È·µã³ö¡£µ«W3C½«ËüÃÇ·Ö³ÉÁ½¸ö±ê×¼£¬ËùÒÔÎÒÃÇÒ²½«ËüÃDzð³ÉÁ½ÕÂÀ´½²½â¡£
4.XPathµÄÓï·¨
4.1 µ±Ç°Î»ÖÃ
4.2 Ѱַ²Ù×÷
4.3 ÔËËã·û
4.4 ¹¦Äܺ¯Êý
4.1 µ±Ç°Î»ÖÃ
µ±ÎÒÃÇʹÓÃXSLT´¦ÀíXMLÔ´ÎĵµÊÇ£¬ÎÒÃÇÓÃContextÀ´±íʾµ±Ç°ÕýÔÚ±»Ä£°å´¦ÀíµÄ½ÚµãλÖᣱÈÈçxsl:template match="/"Óï¾äÖбíʾContextÔÚÎĵµµÄ¸ù(root)½Úµã¡£ÎÒ²»ÖªµÀÈçºÎ׼ȷµÄ·ÒëContextÕâ¸ö´Ê£¬ËüÀàËÆÓÚCÓïÑÔÀïµÄÖ¸Õ룬±íʾ³ÌÐòµ±Ç°ÔËÐеÄλÖá£Àí½âContext¶ÔÓÚÕýÈ·´¦ÀíXSLÄ£°å·Ç³£ÖØÒª£¬µ±ÄúµÄXSLÄ£°åÊä³öµÄÎĵµºÍÄúÏëÒªµÄ²»Ò»Ñù£¬×îÏÈÓ¦¸Ã·ÖÎöµÄ¾ÍÊÇContextÔÚÄÄÀï¡£
Location PathsÊÇÓÃÓÚÉ趨ÄãÏëҪѰÕÒµÄContext½ÚµãλÖ᣾ÍÀàËÆDOSµÄĿ¼ÃüÁî¡£ÎÒÃÇ¿´¸öÀý×Ó
<xsl:for-each select="child::PEOPLE/descendant::PERSON">
ÆäÖÐchild::PEOPLE/descendant::PERSON¾ÍÊÇXPathÓï·¨£¬Õâ¸ö±í´ïʽ¾ÍÊÇÒ»¸öLocation Paths£¬´úÂë˵Ã÷ÒªÏÔʾËùÓÐPEOPLEÔªËØµÄ×ÓÔªËØºÍËùÓÐPERSONÔªËØµÄ×ÓÔªËØ¡£Í¨³£ÎÒÃÇ»á²ÉÓøü¼òµ¥µÄд·¨£º
<xsl:for-each select="PEOPLE//PERSON">
ÎÒÃÇÀ´½âÊÍpathµÄÁ½ÖÖ±íʾ·½·¨£º"/"ºÍ"//"¡£
"/"ÊDZíʾµ±Ç°ÎĵµµÄ½Úµã,ÀàËÆDOSĿ¼·Ö¸î·û¡£ÀýÈ磺/PEOPLE±íʾѡÔñ¸ù½ÚµãϵÄPEOPLEÔªËØ£»PEOPLE/PERSON±íʾѡÔñPEOPLEÔªËØÏÂËùÓеÄPESON×ÓÔªËØ¡£
"//"Ôò±íʾµ±Ç°ÎĵµËùÓеĽڵ㡣ÀàËÆ²é¿´Õû¸öĿ¼¡£ÀýÈ磺//PEOPLE±íʾѡÔñÎĵµÖÐËùÓеÄPEOPLEÔªËØ£¬ÎÞÂÛËüÔÚʲô²ã´Î£»PEOPLE//PERSON±íʾÔÚPEOPLEÔªËØÏÂËùÓеÄPERSONÔªËØ£¬ÎÞÂÛËüµÄ²ã´Î¶àÉî¡£
4.2 Ѱַ²Ù×÷
AxisºÍPredicateÊÇXPathÓï·¨ÖжÔLocation Paths½øÐж¨Î»²Ù×÷µÄÓï·¨£¬¾ßÌåµÄÓ÷¨ÁбíÈçÏÂ
AxisÓï·¨±í
--------------------------------------------------------
±í´ïʽ ¼òд ˵Ã÷
--------------------------------------------------------
self . Ñ¡Ôñµ±Ç°µÄ½Úµã.¡£
Àý×Ó :
<TD><xsl:value-of select="."/></TD>
´úÂë±íʾÔÚµ±Ç°Î»ÖòåÈ뵱ǰµÄ½Úµã°üº¬µÄÎı¾(text)Öµ£¬
--------------------------------------------------------
parent .. Ñ¡Ôñµ±Ç°½ÚµãµÄ¸¸½Úµã¡£
--------------------------------------------------------
attribute @ Ñ¡ÔñÒ»¸öÔªËØµÄËùÓÐÊôÐÔ¡£
Àý×Ó:
<TD><xsl:value-of select="@PERSONID"/></TD>
Ñ¡ÔñPERSONÔªËØµÄËùÓÐÊôÐÔ.
--------------------------------------------------------
child Ñ¡Ôñµ±Ç°½ÚµãµÄËùÓÐ×ÓÔªËØ¡£
--------------------------------------------------------
ancestor Ñ¡Ôñµ±Ç°½ÚµãµÄËùÓи¸ÔªËØ(°üÀ¨¸¸ÔªËصĸ¸ÔªËØ£¬ÀàÍÆ)
--------------------------------------------------------
Axis°ïÖúÎÒÃÇÑ¡Ôñµ±Ç°½ÚµãÖÜΧËùÓеĽڵ㣬¶øPredicateÔòÓÃÀ´¶¨Î»µ±Ç°½ÚµãÄÚ²¿µÄÔªËØ¡£±íʾ·½·¨Îª·½À¨ºÅ[]Öмӱí´ïʽ£º[ Expression ]¡£¾ßÌå¾ÙÀýÈçÏÂ:
PERSON[position()=2]
Õâ¾ä´úÂë±íʾѰÕÒµÚ¶þ¸ö"PERSON" ÔªËØ
PERSON[starts-with(name, "B")]
Õâ¾ä´úÂë±íʾѰÕÒËùÓÐÃû³ÆÒÔ"B"¿ªÍ·µÄPERSONÔªËØ¡£
4.3 ÔËËã·û
ÕâÒ»½Ú½éÉÜXPathµÄÔËËã·û(Expressions)£¬ÁбíÈçÏ£º
--------------------------------------------------------
ÔËËã·û ˵Ã÷
--------------------------------------------------------
and, or ¾ÍÊÇÆÕͨÒâÒåµÄand, or
--------------------------------------------------------
= µÈÓÚ
--------------------------------------------------------
!= ²»µÈÓÚ
--------------------------------------------------------
>, >= ´óÓÚ£¬´óÓÚµÈÓÚ
--------------------------------------------------------
<, <= СÓÚ£¬Ð¡ÓÚµÈÓÚ¡£×¢Ò⣺ÔÚXSLÎļþÖУ¬<·ûºÅÒªÓÃ< ±íʾ
--------------------------------------------------------
+, -, *, div ¼Ó¼õ³Ë³ý
--------------------------------------------------------
mod ȡģ
--------------------------------------------------------
| Á½¸ö½ÚµãÒ»Æð¼ÆËã
--------------------------------------------------------
4.4 ¹¦Äܺ¯Êý(Functions)
ÔÚXPathÀïÓкܶ๦Äܺ¯Êý¿ÉÒÔ°ïÖúÎÒÃǾ«È·Ñ°ÕÒÐèÒªµÄ½Úµã¡£
count()¹¦ÄÜ
×÷ÓãºÍ³¼Æ¼ÆÊý£¬·µ»Ø·ûºÏÌõ¼þµÄ½ÚµãµÄ¸öÊý¡£
¾ÙÀý£º<p><xsl:value-of select="count(PERSON[name=tom])"/></p>
˵Ã÷£º´úÂëµÄÓÃ;ÊÇÏÔʾPERSONÔªËØÖÐÐÕÃûÊôÐÔֵΪtomÓм¸¸ö¡£
number()¹¦ÄÜ
×÷Ó㺽«ÊôÐÔµÄÖµÖеÄÎı¾×ª»»ÎªÊýÖµ¡£
¾ÙÀý£º<p>The number is: <xsl:value-of select="number(book/price)"/></p>
˵Ã÷£º´úÂëµÄÓÃ;ÊÇÏÔʾÊéµÄ¼Û¸ñ¡£
substring() ¹¦ÄÜ
Óï·¨£ºsubstring(value, start, length)
×÷Ó㺽ØÈ¡×Ö·û´®¡£
¾ÙÀý£º<p><xsl:value-of select="substring(name, 1, 3)"/></p>
˵Ã÷£º´úÂëµÄÓÃ;ÊǽØÈ¡nameÔªËØµÄÖµ£¬´ÓµÚÒ»¸ö×Öĸ¿ªÊ¼ÏÔʾµ½µÚÈý¸ö¡£
sum()¹¦ÄÜ
×÷ÓãºÇóºÍ¡£
¾ÙÀý£º<p>Total Price = <xsl:value-of select="sum(//price)"/></p>
˵Ã÷£º´úÂëµÄÓÃ;ÊǼÆËãËùÓм۸ñµÄºÍ¡£
ÉÏÃæÕâЩ¹¦ÄÜÖ»ÊÇXPathÓï·¨ÖеÄÒ»²¿·Ö£¬»¹ÓдóÁ¿µÄ¹¦Äܺ¯ÊýûÓнéÉÜ£¬¶øÇÒĿǰXPathµÄÓï·¨ÈÔÈ»ÔÚ²»¶Ï·¢Õ¹ÖС£Í¨¹ýÕâЩº¯ÊýÎÒÃÇ¿ÉÒÔʵÏÖ¸ü¼Ó¸´ÔӵIJéѯºÍ²Ù×÷¡£
¿´µ½ÕâÀÎÒÃǵÄÈëÃŽ̳̾Ϳì½áÊøÁË¡£Í¨¹ý×ßÂí¹Û»¨Ê½µÄ¿ìËÙѧϰ£¬Ï£Íû´ó¼Ò¶ÔXSLTÓ¦¸ÃÓÐÁËÒ»µã»ù±¾¸ÅÄXSLTÊÇÒ»ÖÖת»»XMLÎĵµµÄÓïÑÔ£¬Ëü°üº¬Á½¸ö¹ý³Ì£º×ª»»ºÍ¸ñʽ»¯¡£XSLTµÄ¹¦ÄܱÈCSSÇ¿´óµÃ¶à£¬ËüÓÐÀàËÆÊý¾Ý²éѯµÄÓï·¨¡£Èç¹ûÄú¶ÔXSLT¸ÐÐËȤ£¬ÄÇôÒÔÉϵÄ֪ʶÊÇÔ¶Ô¶²»¹»µÄ£¬ÐèÒª²éѯ¸ü¶àµÄ×ÊÁÏ¡£°¢½ÝÔÚ×îºóÒ»Õ¸½Â¼Îª´ó¼ÒÌṩÁËÖ÷ÒªµÄXSLT×ÊÔ´¡£