単純な問題だと思っていたのに立ち往生しています。ここにxmlデータがあります
<?xml version="1.0" encoding="UTF-8"?>
<report endDate="2013/02/01 15:10:14" environment="Q000" startDate="2013/01/25 15:10:14">
<distrib appCode="LI" busLine="IL" context="" id="2013-01-25-15.10.11.785293" network="FBB" subNetwork="Z">
<deliv id="2013-01-25-15.10.11.785295" mode="1" role="">
<comm id="2013-01-25-15.10.11.785297" role="">
<group id="001">
<doc id="950955269" nbPages="1" templateId="LVMED1" />
</group>
<group id="002">
<doc id="950955270" nbPages="6" templateId="BALVANW_FA" />
</group>
<group id="003">
<doc id="950955271" nbPages="" templateId="LVMED23" />
</group>
</comm>
</deliv>
</distrib>
<distrib appCode="LI" busLine="IL" context="" id="2013-01-25-15.18.29.871466" network="FBB" subNetwork="Z">
<deliv id="2013-01-25-15.18.29.871468" mode="1" role="">
<comm id="2013-01-25-15.18.29.871469" role="">
<group id="001">
<doc id="950955331" nbPages="2" templateId="LVMED10" />
</group>
</comm>
</deliv>
</distrib>
</report>
要素 'doc' の属性 nbPages のコンテンツを合計したい
これが私が使用するxsltです:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:output method="text" />
<xsl:template match="report">
<xsl:value-of select="count(//doc)"/>
<xsl:value-of select="sum(//doc[@nbPages])"/>
</xsl:template>
</xsl:stylesheet>
カウントはうまくいきますが、合計はうまくいきません。
[Saxon-PE 9.3.0.5] 文字列 {} を double に変換できない
次の代替手段を使用してみましたが、成功しませんでした。
<xsl:value-of select="sum(number(//doc[@nbPages]))"/>
<xsl:value-of select="sum(//doc[number(@nbPages)])"/>
これについて何か助けていただければ幸いです。