論理演算子(and、or)

and演算子 ・・・論理積 「式1 and 式2」の両辺とも真の時のみ真を返す。

or演算子 ・・・論理和 「式1 or 式2」のどちらか一方が真であれば真を返す。

(特記)or演算子よりand演算子が優先される。
    A or B and C ・・・→ A or (B and C) と同じ
(例3)のkabu[end >=1500 or total >=5000 and name/@code >= 6700]は
  ・・・→kabu[end >=1500 or (total >=5000 and name/@code >= 6700)]と同じ

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

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="andor01.xsl"?>
<root>
<title>2004年8月20日の東証株式第一部情報</title>
<info><name>銘柄</name><end>終値(円)</end><total>出来高(千株)</total></info>
<data>
<kabu><name code="6752">松下電器産業</name><end>1436</end><total>3362</total></kabu>
<kabu><name code="6753">シャープ</name><end>1516</end><total>9077</total></kabu>
<kabu><name code="6758">ソニー</name><end>3700</end><total>3840</total></kabu>
<kabu><name code="6764">三洋電機</name><end>386</end><total>9712</total></kabu>
<kabu><name code="6501">日立製作所</name><end>667</end><total>8939</total></kabu>
<kabu><name code="6502">東芝</name><end>406</end><total>16041</total></kabu>
<kabu><name code="6701">NEC</name><end>702</end><total>8493</total></kabu>
<kabu><name code="6702">富士通</name><end>671</end><total>3737</total></kabu>
</data>
<end>以上です(2004/9/2)</end>
</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><H4><xsl:value-of select="root/title"/></H4></center>
<xsl:apply-templates select="root/data"/>
</xsl:template>

<xsl:template match="data">
■(例1)終値が500円以上でかつ、出来高が8000千株以上は
<xsl:value-of select="count(kabu[end &gt;=500 and total &gt;=8000])"/> 銘柄で、次の表のとおりです。
<table border="1" cellpadding="5">
<xsl:for-each select="kabu[end &gt;=500 and total &gt;=8000]">
<tr><td><xsl:value-of select="name"/></td>
<td>終値(円):<xsl:value-of select="end"/></td>
<td>出来高(千株):<xsl:value-of select="total"/></td></tr>
</xsl:for-each>
</table><BR/>
■(例2)終値が500円以上か、または出来高が8000千株以上は
<xsl:value-of select="count(kabu[end &gt;=1000 or total &gt;=10000])"/> 銘柄で、次の表のとおりです。
<table border="1" cellpadding="5">
<xsl:for-each select="kabu[end &gt;=1000 or total &gt;=10000]">
<tr><td><xsl:value-of select="name"/></td>
<td>終値(円):<xsl:value-of select="end"/></td>
<td>出来高(千株):<xsl:value-of select="total"/></td></tr>
</xsl:for-each>
</table><BR/>
■(例3)終値が1500円以上か、または出来高が5000千株以上かつコード番号が6700以上は
<xsl:value-of select="count(kabu[end &gt;=1500 or total &gt;=5000 and name/@code &gt;= 6700])"/> 銘柄で、次の表のとおりです。
<table border="1" cellpadding="5">
<xsl:for-each select="kabu[end &gt;=1500 or total &gt;=5000 and name/@code &gt;= 6700]">
<tr><td><xsl:value-of select="name"/></td>
<td>終値(円):<xsl:value-of select="end"/></td>
<td>出来高(千株):<xsl:value-of select="total"/></td>
<td>コード番号:<xsl:value-of select="name/@code"/></td></tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

end(新規:04/12/3) [Home]