XPath
¢£XSLT
eXtensible Stylesheet Language Transformations
XML¥Æ¥¥¹¥È¤òɽ¼¨¡¦°õºþÍѤËÊÑ´¹¤¹¤ë¤¿¤á¤Î¤â¤Î¡£
XSL¤Î°ìÉô¡£
XMLʸ½ñ¤ò¾¤ÎXMLʸ½ñ¤äHTMLʸ½ñ¤ËÊÑ´¹¤Ç¤¤ë¡£
ÊÑ´¹Á°XMLʸ½ñ¡½¢ªXSLT¥×¥í¥»¥Ã¥µ¢ªÊÑ´¹¸åXMLʸ½ñ
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¬
¡¡¡¡¡¡¡¡¡¡¡¡¡¡XSLT¥¹¥¿¥¤¥ë¥·¡¼¥È
¢£XPath
XML Path Language
XMLʸ½ñ¤Î°ìÉôʬ¤ò¥¢¥É¥ì¥Ã¥·¥ó¥°¤¹¤ë¤¿¤á¤Î¸À¸ì¡£
¢ªXSL¤Ç»È¤ï¤ì¤Æ¤¤¤ë¡¢XML¥Æ¥¥¹¥È¤Î¹½Â¤¤òé¤Ã¤Æ¡¢Í×ÁǤä°À¡¢Ê¸»úÎó¤ò»Ø¤·¼¨¤¹°Ù¤Î¸À¸ì¡£
XSLT¤ÇXML¥Ç¡¼¥¿¤Î¹½Â¤ÊÑ´¹¤òµ½Ò¤¹¤ë°Ù¤Ë¤Ï¡¢
XML¥Ç¡¼¥¿Ãæ¤ÎÆÃÄê¤ÎÍ×ÁǤä°À¤ò»ØÄꤹ¤ë¤¿¤á¤Î¸À¸ì¡Ê¡áXPath¡Ë¤¬É¬Íס£
XSLT¤Î¥¹¥¿¥¤¥ë¥·¡¼¥È¤òºîÀ®¤¹¤ë¤Î¤Ë»ÈÍÑ¡£
¢£XPath¤Î½ñ¤Êý
¡½XML¥Ç¡¼¥¿¡½
<'?xml version="1.0"?>
<'publications>
<'book>HogeBook<'/book>
<'book>HogeBook<'/book>
<'magazine>HogeMagazine<'/magazine>
<'/publications>
¢
¡½XPath¤Î¥Ç¡¼¥¿¥â¥Ç¥ë¤Ë¤è¤ë¥Ä¥ê¡¼¹½Â¤¡½
¥ë¡¼¥È¥Î¡¼¥É
¡Ã
¡Ã¡½Í×ÁǥΡ¼¥É/publication
¡¡¡¡¡Ã
¡¡¡¡¡Ã¡½Í×ÁǥΡ¼¥É/book
¡¡¡¡¡Ã¡¡¡Ã¡½¥Æ¥¥¹¥È¥Î¡¼¥É/HogeBook
¡¡¡¡¡Ã
¡¡¡¡¡Ã¡½Í×ÁǥΡ¼¥É/book
¡¡¡¡¡Ã¡¡¡Ã¡½¥Æ¥¥¹¥È¥Î¡¼¥É/HogeBook
¡¡¡¡¡Ã
¡¡¡¡¡Ã¡½Í×ÁǥΡ¼¥É/magazine
¡¡¡¡ ¡¡¡Ã¡½¥Æ¥¥¹¥È¥Î¡¼¥É/HogeMagazine
¢¢XPathʸˡ/¥ë¡¼¥È¥Î¡¼¥É¤Ï¡¢µ¹æ[/]¤Ç»ØÄꤹ¤ë¡£
<'xsl:template match="/">
¡Ä¡Ä
<'/template>
¢ª¥ë¡¼¥È¥Î¡¼¥É¤Ë¥Æ¥ó¥×¥ì¡¼¥È¤òŬÍѤµ¤»¤ë¡¢¤æ¤¦°ÕÌ£¡£
¢¢XPathʸˡ/¿Æ»Ò´Ø·¸¤Ï¡¢[/]¤Çɽ¤¹¡£
¥Î¡¼¥ÉƱ»Î¤Î¿Æ»Ò´Ø·¸(³¬Áع½Â¤)¤Ï¡¢µ¹æ[/]¤Ç¿ÆÍ×ÁÇ¡¦»ÒÍ×ÁǤòÏ¢·ë¤·¤Æ¤¤É½¸½¤¹¤ë¡£
<'xsl:template match="publications/book">
¡Ä¡Ä
<'/xsl:template>
¢ªpublicationÍ×ÁǤλÒÍ×ÁÇbook¤Ë¥Æ¥ó¥×¥ì¡¼¥È¤òŬÍѤµ¤»¤ë¡¢¤æ¤¦°ÕÌ£¡£
¢¢XPathʸˡ/ÁÄÀè¤È»Ò¹¤Ï[//]¤ÇÏ¢·ë¤¹¤ë¡£
¤¢¤ëÍ×ÁǤλÒ¹Í×ÁǤ˥ƥó¥×¥ì¡¼¥È¥ë¡¼¥ë¤òŬÍѤ·¤¿¤¤¾ì¹ç¡¢
µ¹æ[//]¤ÇÁÄÀèÍ×ÁǤȻÒ¹Í×ÁǤòÏ¢·ë¤·¤ÆÉ½¸½¤¹¤ë¡£
<'xsl:template match="publications//price">
¡Ä¡Ä
<'/xsl:template>
¢ªpublicationÍ×ÁǤλÒÍ×ÁÇ{book}¤Î»ÒÍ×ÁÇprice¤Ë¥Æ¥ó¥×¥ì¡¼¥È¥ë¡¼¥ë¤òŬÍѤµ¤»¤ë¡¢¤æ¤¦°ÕÌ£¡£
¢¢XPathʸˡ/test()¤Ç¥Æ¥¥¹¥È¥Î¡¼¥É¤ò¼è¤ê½Ð¤¹¡£
XML1.0ʸˡ¤Ç¤Ï¡¢³«»Ï¥¿¥°¤È½ªÎ»¥¿¥°¤Ç°Ï¤Þ¤ì¤¿Éôʬ¤òÍ×ÁÇ¤ÎÆâÍÆ¤È¤¤¤¦¡£
<'book>HogeBook<'/book>
XPath¤Ç¤Ï¡¢Í×ÁÇ¤ÎÆâÍÆ¤Ï¡¢¤½¤ÎÍ×ÁǥΡ¼¥É¤Ë·Ò¤¬¤ë¥Æ¥¥¹¥È¥Î¡¼¥É¤Ç¤¢¤ë¤È¹Í¤¨¤ë¡£
XPath¤Ç¡¢¤¢¤ëÍ×ÁǤλҥƥ¥¹¥È¥Î¡¼¥É¤òÌÀ¼¨Åª¤ËÁªÂò¤¹¤ë¤Ë¤Ï¡¢text()¤òÍѤ¤¤ë¡£
<'xsl:value-of select="book/text()"/>
cf.
<'xsl:valu-of select="book"/>¤È½ñ¤¤¤Æ¤â¡¢XSLT¥×¥í¥»¥Ã¥µ¤Ï¡¢
bookÍ×ÁǤÎÃͤȤ·¤Æ»Ò¥Æ¥¥¹¥È¥Î¡¼¥É¤Îʸ»úÎó¤òÊÖ¤¹¤Î¤Ç¡¢·ë²Ì¤ÏƱ¤¸¡£
¢¢XPathʸˡ/¥«¥ì¥ó¥È¥Î¡¼¥É¤Ï[.]¤Çɽ¤¹¡£
XSLT¥×¥í¥»¥Ã¥µ¤¬¸½ºß½èÍý¤·¤Æ¤¤¤ë¥Î¡¼¥É¤ò¥«¥ì¥ó¥È¥Î¡¼¥É¤È¤¤¤¦¡£
XPath¤Ç¤Ï¡¢[.]¤Çɽ¸½¤¹¤ë¡£
<'xsl:value-of select".">
¢ª¥«¥ì¥ó¥È¥Î¡¼¥É¤Î»Ò¥Æ¥¥¹¥È¥Î¡¼¥É¤ò¼è¤ê½Ð¤¹¡¢¤æ¤¦°ÕÌ£¡£
XPath¤Î¥Ç¡¼¥¿¥â¥Ç¥ë¤Ç¤Ï¡¢Í×ÁÇÆâ¤Ç»ØÄꤵ¤ì¤¿Â°À¤ò¥Î¡¼¥É¤Î°ì¼ï¤È¹Í¤¨¡¢Â°À¥Î¡¼¥É¤È¸Æ¤Ö¡£
°À¥Î¡¼¥É¤È¤½¤Î°À¤ò»ý¤ÄÍ×ÁǥΡ¼¥É¤Î´Ø·¸¤Ï¡¢½¾Â°´Ø·¸¤Ë¤¢¤ê¡¢Í×ÁǥΡ¼¥É¤Î¿Æ»Ò´Ø·¸¤È¤ÏÊÌ¡£
°À¥Î¡¼¥É¤Î¾¤Ë¤â¡¢
̾Á°¶õ´Ö¥Î¡¼¥É¡¢½èÍýÌ¿Îá¥Î¡¼¥É¡¢¥³¥á¥ó¥È¥Î¡¼¥É¤¬¤¢¤ë¡£
¢£XPath¤Î±é»»»Ò
Èæ³Ó±é»»»Ò¡§ =, !=, <', >, <'=, >=
»»½Ñ±é»»»Ò¡§ +, -, *, div, mod
ÏÀÍý±é»»»Ò¡§ and, or
¢¨Èæ³Ó±é»»»Ò[<']¤È[>]¤Ï¡¢XML¤Ç¤Ï¥¿¥°¤Î³«»Ï¤È½ªÎ»¤ò¼¨¤¹¤¿¤á¡¢
¡¡XPath¤Ç»ÈÍѤ¹¤ëºÝ¤Ï¡¢¥¨¥ó¥Æ¥£¥Æ¥£»²¾È(¼ÂÂÖ»²¾È)¤Î[<]¤È[>]¤ò»ÈÍѤ·¤ÆÃÖ´¹¤¹¤ë¤³¤È¡£
¢£XPath¤Î¥Î¡¼¥É½¸¹ç´Ø¿ô
XPath¤Ë¤Ï¡¢¥Î¡¼¥É½¸¹ç´Ø¿ô¡¢Ê¸»úÎó´Ø¿ô¡¢¥Ö¡¼¥ë´Ø¿ô¡¢¿ôÃÍ´Ø¿ô¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¡£
ex
¡¦position() ¢ª»ØÄꤵ¤ì¤¿¥Î¡¼¥É½¸¹ç¤ÎÃæ¤Î¤½¤ì¤¾¤ì¤Î°ÌÃÖ¤òÊÖ¤¹¡£
¡¦last() ¢ª»ØÄꤵ¤ì¤¿¥Î¡¼¥É½¸¹ç¤ÎºÇ¸å¤Î¥Î¡¼¥É¤Î°ÌÃÖ¤òÊÖ¤¹¡£
¡¦count() ¢ª»ØÄꤵ¤ì¤¿¥Î¡¼¥É½¸¹ç¤Î¥µ¥¤¥º¤òÊÖ¤¹¡£
¾åµ¤Î´Ø¿ô¤Ç¡¢Æ±°ì³¬ÁØ¤ÇÆ±°ìÍ×ÁÇ̾¤ò»ý¤Ä¤â¤Î¤ÎÃæ¤«¤éÆÃÄê¤ÎÍ×ÁǤÀ¤±¤ò»ØÄê¤Ç¤¤ë¡£
<'xsl:template match="book[position()=2]"/>
¢ªÊ£¿ôÍåÎ󤷤Ƥ¤¤ëbookÍ×ÁǤÎÃæ¤«¤é2ÈÖÌܤÎbookÍ×ÁǤÀ¤±¤ò½èÍý¤¹¤ë¡¢¤æ¤¦°ÕÌ£¡£
¢£XPath¤Ç¤ÎÆÃÄê°À¤ÎÁªÂò
Í×ÁǤ¬»ý¤Ä°À¤ËÃíÌܤ·¡¢ÆÃÄê¤Î°ÀÃͤò»ý¤Ä¥Î¡¼¥É¤À¤±¤òÁªÂò¤Ç¤¤ë¡£
<'?xml version="1.0" encoding="shift_jis"?>
<'publications>
<'book att="XML">¤Û¤²<'/book>
<'book att="SGML">¥Û¥²<'/book>
<'book att="DTP">Êâ²Æ<'/book>
<'/publications>
°À̾¤ÎÁ°¤Ë[@]¤òÉÕ¤±¤ë»ö¤Ç¡¢Â°ÀÃͤòXPath¤ÎÃæ¤Ç»²¾È¤Ç¤¤ë¡£
<'xsl:template match="book[@att='SGML']"/>
¢ªatt°À¤¬"SGML"¤ÎÍ×ÁÇ(2ÈÖÌܤÎbookÍ×ÁǤΤß)¤òÁªÂò¤¹¤ë¡¢¤æ¤¦°ÕÌ£¡£
ref:
XPath¤Î½ñ¤Êý¤Î´ðËÜ
http://www.atmarkit.co.jp/fxml/tanpatsu/10xslt/xslt02.html
W3C/XSLT
http://www.infoteria.com/jp/contents/xml-data/REC-xslt-19991116-jpn.htm
W3C/XPath
http://www.doraneko.org/xml/xpath10/19991116/Overview.html
eXtensible Stylesheet Language Transformations
XML¥Æ¥¥¹¥È¤òɽ¼¨¡¦°õºþÍѤËÊÑ´¹¤¹¤ë¤¿¤á¤Î¤â¤Î¡£
XSL¤Î°ìÉô¡£
XMLʸ½ñ¤ò¾¤ÎXMLʸ½ñ¤äHTMLʸ½ñ¤ËÊÑ´¹¤Ç¤¤ë¡£
ÊÑ´¹Á°XMLʸ½ñ¡½¢ªXSLT¥×¥í¥»¥Ã¥µ¢ªÊÑ´¹¸åXMLʸ½ñ
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¬
¡¡¡¡¡¡¡¡¡¡¡¡¡¡XSLT¥¹¥¿¥¤¥ë¥·¡¼¥È
¢£XPath
XML Path Language
XMLʸ½ñ¤Î°ìÉôʬ¤ò¥¢¥É¥ì¥Ã¥·¥ó¥°¤¹¤ë¤¿¤á¤Î¸À¸ì¡£
¢ªXSL¤Ç»È¤ï¤ì¤Æ¤¤¤ë¡¢XML¥Æ¥¥¹¥È¤Î¹½Â¤¤òé¤Ã¤Æ¡¢Í×ÁǤä°À¡¢Ê¸»úÎó¤ò»Ø¤·¼¨¤¹°Ù¤Î¸À¸ì¡£
XSLT¤ÇXML¥Ç¡¼¥¿¤Î¹½Â¤ÊÑ´¹¤òµ½Ò¤¹¤ë°Ù¤Ë¤Ï¡¢
XML¥Ç¡¼¥¿Ãæ¤ÎÆÃÄê¤ÎÍ×ÁǤä°À¤ò»ØÄꤹ¤ë¤¿¤á¤Î¸À¸ì¡Ê¡áXPath¡Ë¤¬É¬Íס£
XSLT¤Î¥¹¥¿¥¤¥ë¥·¡¼¥È¤òºîÀ®¤¹¤ë¤Î¤Ë»ÈÍÑ¡£
¢£XPath¤Î½ñ¤Êý
¡½XML¥Ç¡¼¥¿¡½
<'?xml version="1.0"?>
<'publications>
<'book>HogeBook<'/book>
<'book>HogeBook<'/book>
<'magazine>HogeMagazine<'/magazine>
<'/publications>
¢
¡½XPath¤Î¥Ç¡¼¥¿¥â¥Ç¥ë¤Ë¤è¤ë¥Ä¥ê¡¼¹½Â¤¡½
¥ë¡¼¥È¥Î¡¼¥É
¡Ã
¡Ã¡½Í×ÁǥΡ¼¥É/publication
¡¡¡¡¡Ã
¡¡¡¡¡Ã¡½Í×ÁǥΡ¼¥É/book
¡¡¡¡¡Ã¡¡¡Ã¡½¥Æ¥¥¹¥È¥Î¡¼¥É/HogeBook
¡¡¡¡¡Ã
¡¡¡¡¡Ã¡½Í×ÁǥΡ¼¥É/book
¡¡¡¡¡Ã¡¡¡Ã¡½¥Æ¥¥¹¥È¥Î¡¼¥É/HogeBook
¡¡¡¡¡Ã
¡¡¡¡¡Ã¡½Í×ÁǥΡ¼¥É/magazine
¡¡¡¡ ¡¡¡Ã¡½¥Æ¥¥¹¥È¥Î¡¼¥É/HogeMagazine
¢¢XPathʸˡ/¥ë¡¼¥È¥Î¡¼¥É¤Ï¡¢µ¹æ[/]¤Ç»ØÄꤹ¤ë¡£
<'xsl:template match="/">
¡Ä¡Ä
<'/template>
¢ª¥ë¡¼¥È¥Î¡¼¥É¤Ë¥Æ¥ó¥×¥ì¡¼¥È¤òŬÍѤµ¤»¤ë¡¢¤æ¤¦°ÕÌ£¡£
¢¢XPathʸˡ/¿Æ»Ò´Ø·¸¤Ï¡¢[/]¤Çɽ¤¹¡£
¥Î¡¼¥ÉƱ»Î¤Î¿Æ»Ò´Ø·¸(³¬Áع½Â¤)¤Ï¡¢µ¹æ[/]¤Ç¿ÆÍ×ÁÇ¡¦»ÒÍ×ÁǤòÏ¢·ë¤·¤Æ¤¤É½¸½¤¹¤ë¡£
<'xsl:template match="publications/book">
¡Ä¡Ä
<'/xsl:template>
¢ªpublicationÍ×ÁǤλÒÍ×ÁÇbook¤Ë¥Æ¥ó¥×¥ì¡¼¥È¤òŬÍѤµ¤»¤ë¡¢¤æ¤¦°ÕÌ£¡£
¢¢XPathʸˡ/ÁÄÀè¤È»Ò¹¤Ï[//]¤ÇÏ¢·ë¤¹¤ë¡£
¤¢¤ëÍ×ÁǤλÒ¹Í×ÁǤ˥ƥó¥×¥ì¡¼¥È¥ë¡¼¥ë¤òŬÍѤ·¤¿¤¤¾ì¹ç¡¢
µ¹æ[//]¤ÇÁÄÀèÍ×ÁǤȻÒ¹Í×ÁǤòÏ¢·ë¤·¤ÆÉ½¸½¤¹¤ë¡£
<'xsl:template match="publications//price">
¡Ä¡Ä
<'/xsl:template>
¢ªpublicationÍ×ÁǤλÒÍ×ÁÇ{book}¤Î»ÒÍ×ÁÇprice¤Ë¥Æ¥ó¥×¥ì¡¼¥È¥ë¡¼¥ë¤òŬÍѤµ¤»¤ë¡¢¤æ¤¦°ÕÌ£¡£
¢¢XPathʸˡ/test()¤Ç¥Æ¥¥¹¥È¥Î¡¼¥É¤ò¼è¤ê½Ð¤¹¡£
XML1.0ʸˡ¤Ç¤Ï¡¢³«»Ï¥¿¥°¤È½ªÎ»¥¿¥°¤Ç°Ï¤Þ¤ì¤¿Éôʬ¤òÍ×ÁÇ¤ÎÆâÍÆ¤È¤¤¤¦¡£
<'book>HogeBook<'/book>
XPath¤Ç¤Ï¡¢Í×ÁÇ¤ÎÆâÍÆ¤Ï¡¢¤½¤ÎÍ×ÁǥΡ¼¥É¤Ë·Ò¤¬¤ë¥Æ¥¥¹¥È¥Î¡¼¥É¤Ç¤¢¤ë¤È¹Í¤¨¤ë¡£
XPath¤Ç¡¢¤¢¤ëÍ×ÁǤλҥƥ¥¹¥È¥Î¡¼¥É¤òÌÀ¼¨Åª¤ËÁªÂò¤¹¤ë¤Ë¤Ï¡¢text()¤òÍѤ¤¤ë¡£
<'xsl:value-of select="book/text()"/>
cf.
<'xsl:valu-of select="book"/>¤È½ñ¤¤¤Æ¤â¡¢XSLT¥×¥í¥»¥Ã¥µ¤Ï¡¢
bookÍ×ÁǤÎÃͤȤ·¤Æ»Ò¥Æ¥¥¹¥È¥Î¡¼¥É¤Îʸ»úÎó¤òÊÖ¤¹¤Î¤Ç¡¢·ë²Ì¤ÏƱ¤¸¡£
¢¢XPathʸˡ/¥«¥ì¥ó¥È¥Î¡¼¥É¤Ï[.]¤Çɽ¤¹¡£
XSLT¥×¥í¥»¥Ã¥µ¤¬¸½ºß½èÍý¤·¤Æ¤¤¤ë¥Î¡¼¥É¤ò¥«¥ì¥ó¥È¥Î¡¼¥É¤È¤¤¤¦¡£
XPath¤Ç¤Ï¡¢[.]¤Çɽ¸½¤¹¤ë¡£
<'xsl:value-of select".">
¢ª¥«¥ì¥ó¥È¥Î¡¼¥É¤Î»Ò¥Æ¥¥¹¥È¥Î¡¼¥É¤ò¼è¤ê½Ð¤¹¡¢¤æ¤¦°ÕÌ£¡£
XPath¤Î¥Ç¡¼¥¿¥â¥Ç¥ë¤Ç¤Ï¡¢Í×ÁÇÆâ¤Ç»ØÄꤵ¤ì¤¿Â°À¤ò¥Î¡¼¥É¤Î°ì¼ï¤È¹Í¤¨¡¢Â°À¥Î¡¼¥É¤È¸Æ¤Ö¡£
°À¥Î¡¼¥É¤È¤½¤Î°À¤ò»ý¤ÄÍ×ÁǥΡ¼¥É¤Î´Ø·¸¤Ï¡¢½¾Â°´Ø·¸¤Ë¤¢¤ê¡¢Í×ÁǥΡ¼¥É¤Î¿Æ»Ò´Ø·¸¤È¤ÏÊÌ¡£
°À¥Î¡¼¥É¤Î¾¤Ë¤â¡¢
̾Á°¶õ´Ö¥Î¡¼¥É¡¢½èÍýÌ¿Îá¥Î¡¼¥É¡¢¥³¥á¥ó¥È¥Î¡¼¥É¤¬¤¢¤ë¡£
¢£XPath¤Î±é»»»Ò
Èæ³Ó±é»»»Ò¡§ =, !=, <', >, <'=, >=
»»½Ñ±é»»»Ò¡§ +, -, *, div, mod
ÏÀÍý±é»»»Ò¡§ and, or
¢¨Èæ³Ó±é»»»Ò[<']¤È[>]¤Ï¡¢XML¤Ç¤Ï¥¿¥°¤Î³«»Ï¤È½ªÎ»¤ò¼¨¤¹¤¿¤á¡¢
¡¡XPath¤Ç»ÈÍѤ¹¤ëºÝ¤Ï¡¢¥¨¥ó¥Æ¥£¥Æ¥£»²¾È(¼ÂÂÖ»²¾È)¤Î[<]¤È[>]¤ò»ÈÍѤ·¤ÆÃÖ´¹¤¹¤ë¤³¤È¡£
¢£XPath¤Î¥Î¡¼¥É½¸¹ç´Ø¿ô
XPath¤Ë¤Ï¡¢¥Î¡¼¥É½¸¹ç´Ø¿ô¡¢Ê¸»úÎó´Ø¿ô¡¢¥Ö¡¼¥ë´Ø¿ô¡¢¿ôÃÍ´Ø¿ô¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¡£
ex
¡¦position() ¢ª»ØÄꤵ¤ì¤¿¥Î¡¼¥É½¸¹ç¤ÎÃæ¤Î¤½¤ì¤¾¤ì¤Î°ÌÃÖ¤òÊÖ¤¹¡£
¡¦last() ¢ª»ØÄꤵ¤ì¤¿¥Î¡¼¥É½¸¹ç¤ÎºÇ¸å¤Î¥Î¡¼¥É¤Î°ÌÃÖ¤òÊÖ¤¹¡£
¡¦count() ¢ª»ØÄꤵ¤ì¤¿¥Î¡¼¥É½¸¹ç¤Î¥µ¥¤¥º¤òÊÖ¤¹¡£
¾åµ¤Î´Ø¿ô¤Ç¡¢Æ±°ì³¬ÁØ¤ÇÆ±°ìÍ×ÁÇ̾¤ò»ý¤Ä¤â¤Î¤ÎÃæ¤«¤éÆÃÄê¤ÎÍ×ÁǤÀ¤±¤ò»ØÄê¤Ç¤¤ë¡£
<'xsl:template match="book[position()=2]"/>
¢ªÊ£¿ôÍåÎ󤷤Ƥ¤¤ëbookÍ×ÁǤÎÃæ¤«¤é2ÈÖÌܤÎbookÍ×ÁǤÀ¤±¤ò½èÍý¤¹¤ë¡¢¤æ¤¦°ÕÌ£¡£
¢£XPath¤Ç¤ÎÆÃÄê°À¤ÎÁªÂò
Í×ÁǤ¬»ý¤Ä°À¤ËÃíÌܤ·¡¢ÆÃÄê¤Î°ÀÃͤò»ý¤Ä¥Î¡¼¥É¤À¤±¤òÁªÂò¤Ç¤¤ë¡£
<'?xml version="1.0" encoding="shift_jis"?>
<'publications>
<'book att="XML">¤Û¤²<'/book>
<'book att="SGML">¥Û¥²<'/book>
<'book att="DTP">Êâ²Æ<'/book>
<'/publications>
°À̾¤ÎÁ°¤Ë[@]¤òÉÕ¤±¤ë»ö¤Ç¡¢Â°ÀÃͤòXPath¤ÎÃæ¤Ç»²¾È¤Ç¤¤ë¡£
<'xsl:template match="book[@att='SGML']"/>
¢ªatt°À¤¬"SGML"¤ÎÍ×ÁÇ(2ÈÖÌܤÎbookÍ×ÁǤΤß)¤òÁªÂò¤¹¤ë¡¢¤æ¤¦°ÕÌ£¡£
ref:
XPath¤Î½ñ¤Êý¤Î´ðËÜ
http://www.atmarkit.co.jp/fxml/tanpatsu/10xslt/xslt02.html
W3C/XSLT
http://www.infoteria.com/jp/contents/xml-data/REC-xslt-19991116-jpn.htm
W3C/XPath
http://www.doraneko.org/xml/xpath10/19991116/Overview.html
