XPath:全ての型のノードを返す node()

node()

・child::node()の省略表記で、ロケーションステップ(Location Step)のノードテスト(node test)部分に使う。
・ノード型に関係なく、コンテキストノードのすべての子ノードを選択する。(属性ノードと孫以下のノードは除く)

[サンプルXML文書を表示](下のフレームに)

*このサンプルでは、"親"がコンテキストノードになります。"親"の1番目の子ノードはテキストノード、2番目はコメントノード。3番目が"姉"

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="xpath18.xsl"?>
<root>
<title>わたしの家系</title>
<叔父>叔父さん
<従姉妹>叔父さんの娘</従姉妹>
</叔父>
<親 年齢="88">お父さんお母さん
<!--私の兄弟姉妹です-->
<姉 年齢="62">お姉さん
<おい>お姉さんの息子</おい>
</姉>
<私 年齢="58">おいら
<長男 年齢="38">長男
<孫1>長男の娘</孫1>
</長男>
<長女>長女</長女>
<次男>次男</次男>
</私>
<弟 年齢="54">弟
<めい>弟の娘</めい>
</弟>
<妹 年齢="48">妹</妹>
</親>
</root>

XSLソース

<?xml version="1.0" encoding="Shift_Jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS"/>
<xsl:template match="/">
<center><H3><xsl:value-of select="家系/title"/></H3></center>
<xsl:apply-templates select="root/親"/>
</xsl:template>
<xsl:template match="親">
<xsl:for-each select="node()">
<xsl:value-of select="position()"/>
<xsl:value-of select="name()"/>・・・
<xsl:value-of select="."/>
<br/>
</xsl:for-each> <hr/>
3番目のノードは・・・→<xsl:value-of select="name(node()[3])"/>
</xsl:template>
</xsl:stylesheet>

end(04/5/11)