複数のアカウントを持つ XML があり、score/max_score の形式で複数のスコアの合計を作成しようとしています。
XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="accounts.xsl"?>
<accounts>
<account active="yes">
<id>1</id>
<name>James</name>
<score>50/100</score>
</account>
<account active="yes">
<id>2</id>
<name>Caty</name>
<score>10/100</score>
</account>
<account active="yes">
<id>3</id>
<name>Acacia</name>
<score>30/100</score>
</account>
<account active="yes">
<id>4</id>
<name>James</name>
<score>50/100</score>
</account>
<account active="yes">
<id>5</id>
<name>Scoot_5</name>
<score>40/100</score>
</account>
</accounts>
そして XSLT:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/">
<html>
<body>
<p>
<xsl:value-of select="sum(//accounts/account/score/number(substring-before(.,'/')))"/>
</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
ただし、xml を実行するとエラーが発生し、合計が返されません。なんで?