<xsl:for-each>処理のselect=""に抽出の条件設定すればよい。
(注意)演算子 < はそのままでは使用できない。実体参照”<”で記述すること。
[サンプルXML文書を表示](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?> <?xml-stylesheet type="text/xsl" href="filter01.xsl"?> <root> <top>ソート処理_no3</top> <contents> <city><name>倉吉市</name><ken gp="中国" nu="001">鳥取県</ken></city> <city><name>高槻市</name><ken gp="近畿" nu="259">大阪府</ken></city> <city><name>姫路市</name><ken gp="近畿" nu="983">兵庫県</ken></city> <city><name>倉敷市</name><ken gp="中国" nu="333">岡山県</ken></city> <city><name>鳥取市</name><ken gp="中国" nu="390">鳥取県</ken></city> <city><name>神戸市</name><ken gp="近畿" nu="174">兵庫県</ken></city> <city><name>宗像市</name><ken gp="九州" nu="990">福岡県</ken></city> <city><name>摂津市</name><ken gp="近畿" nu="846">大阪府</ken></city> <city><name>下関市</name><ken gp="中国" nu="001">山口県</ken></city> <city><name>宝塚市</name><ken gp="近畿" nu="105">兵庫県</ken></city> <city><name>堺 市</name><ken gp="近畿" nu="548">大阪府</ken></city> <city><name>熊本市</name><ken gp="九州" nu="361">熊本県</ken></city> <city><name>津山市</name><ken gp="中国" nu="772">岡山県</ken></city> <city><name>米子市</name><ken gp="中国" nu="285">鳥取県</ken></city> <city><name>松原市</name><ken gp="近畿" nu="283">大阪府</ken></city> <city><name>福岡市</name><ken gp="九州" nu="652">福岡県</ken></city> <city><name>長門市</name><ken gp="中国" nu="662">山口県</ken></city> <city><name>西宮市</name><ken gp="近畿" nu="190">兵庫県</ken></city> <city><name>境港市</name><ken gp="中国" nu="669">鳥取県</ken></city> <city><name>小倉市</name><ken gp="九州" nu="147">福岡県</ken></city> </contents> <end>以上です(01/4/13)</end> </root>
XSLソース
<?xml version="1.0" encoding="Shift_Jis"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <center><H3><xsl:value-of select="root/top"/></H3></center> <xsl:apply-templates select="root/contents"/> </xsl:template> <xsl:template match="contents"> <HR/> <H4>"ken"要素が"大阪府"のものだけを抽出する</H4> <xsl:for-each select="city[ken='大阪府']"> <xsl:value-of select="name" /><BR/> </xsl:for-each> <HR/> <H4>"ken"要素の"nu"属性が500以上のものだけを抽出する</H4> <xsl:for-each select="city[ken/@nu >= 500]"> <xsl:value-of select="name" /><BR/> </xsl:for-each> <HR/> <H4>"ken"要素の"gp"属性が"近畿"、または"nu"属性が200以下のものだけを抽出する</H4> <xsl:for-each select="city[ken/@gp='近畿']|city[ken/@nu <= 200]"> <xsl:value-of select="name" /><BR/> </xsl:for-each> </xsl:template> </xsl:stylesheet>
end(01/4/13)