XPath descendant-or-self::*ã ã¨selfã¯é¸æŠžã•ã‚Œãªã„?
http://gadgets.boingboing.net/ ã§ã®å‡ºæ¥äº‹ã€‚
ページ一番下㮠Continue Reading Older Posts ã«ãƒžãƒƒãƒã•ã›ãŸã„。
$x('id("continue-reading")//a[contains(self::*/text(),"Old")]'); // ok $x('id("continue-reading")//a[contains(self::a/text(),"Old")]'); // ok $x('id("continue-reading")//a[contains(descendant-or-self::a/text(),"Old")]'); // ok $x('id("continue-reading")//a[contains(descendant-or-self::*/text(),"Old")]'); // ng
ã‚ã‹ã£ã¦ãªã„ã ã‘ã£ã½ã„。
ã‚ã‹ã£ãŸã€‚text()ã¯ãƒ†ã‚ストノードã®é›†åˆã‚’ã‹ãˆã™ã‚“ã ã¨æ€ã£ã¦ãŸã‘ã©ãã†ã˜ã‚ƒãªãã¦ã€ã‚³ãƒ³ãƒ†ã‚ストノードãŒãƒ†ã‚ストノードã‹ã©ã†ã‹ã‚’è¿”ã™ã€‚
ã ã‹ã‚‰
$x('id("continue-reading")//a/descendant-or-self::text()[contains(. ,"Old")];
ã£ã¦ã‹ã‘ã°ã„ã„。
ã£ã¦æ›¸ã„ã¦ã‚ã‚‹ã‘ã©ãã†ã„ã†ã‚‚ã®ãªã®?
# # descendant-or-self::para ã¯ã‚³ãƒ³ãƒ†ã‚ストノードã®ã€ para ã¨ã„ã†åå‰ã®åå«ã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆã‚’é¸æŠžã™ã‚‹ã€‚コンテã‚ストノード自身㌠para ã¨ã„ã†åå‰ã®ã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆã®å ´åˆã¯ã€ãã®ã‚³ãƒ³ãƒ†ã‚ストノードもé¸æŠžã™ã‚‹ã€‚
原文も変ã‚ã‚“ãªã„。
descendant-or-self::para selects the para element descendants of the context node and, if the context node is a para element, the context node as well
text()ã®ã¨ãã ã‘ã®ãƒã‚°ã‹ãªã‚。