1

複数のアカウントを持つ 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 を実行するとエラーが発生し、合計が返されません。なんで?

4

2 に答える 2

1

@kjhughes は、あなたが XSLT 1.0 プロセッサーを使用していて、Web ブラウザーで実行していることをどうにかして突き止めたようです。

これを実行するには、XSLT 2.0 プロセッサが必要です。実際に Web ブラウザで実行している場合は、現在クライアント側で実行できる唯一の 2.0 プロセッサである Saxon-CE を検討してください。

于 2013-10-29T09:04:12.227 に答える