- PR -

複数XML文書の指定項目の合計を求める方法について

1
投稿者投稿内容
キムチナベ
会議室デビュー日: 2004/12/26
投稿数: 15
投稿日時: 2006-09-03 13:14
いつもお世話になっております。

表題の通り、複数のXMLドキュメントから指定した項目の合計を取得しようと思います。
ソースは下記の通りです。

■XMLファイル
----------
1.original.xml(複数XMLドキュメントをまとめるXMLドキュメント):
<?xml version="1.0" encoding="Shift_JIS" ?>
<spendings>
<spending href="original-a.xml" />
<spending href="original-b.xml" />
<spending href="original-c.xml" />
</spendings>

2.複数のXMLドキュメント
original-a.xml(original-b.xml,original-c.xmlも同様):
<?xml version="1.0" encoding="shift_jis"?>
<spending>
<amount>4.25</amount>
</spending>


■3.集計のXSLT
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
 <xsl:template match="/">
  <xsl:param name="sum" select="0.0"/>
  <xsl:for-each select="document(spendings/spending/@href)/spending">
<xsl:value-of select="amount" /> ---@
   </xsl:for-each>
   <総金額><xsl:value-of select="$sum" /></総金額>
 </xsl:template>
</xsl:stylesheet>

※ @のところでは各XMLの指定項目値を取得することはできますが、
その後の合計処理をどうすればいいのか行き詰まっています。

ひとつのXMLドキュメントの中の指定項目の合計は関数を使って簡単にできますが、
複数のXMLはなかなかうまくいけません。

いい解決方法をご存知の方ぜひご教授お願いします。

[ メッセージ編集済み 編集者: キムチナベ 編集日時 2006-09-03 13:15 ]
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-09-04 10:15
関数: number sum(node-set)
ですから、複数文書の
amount の node-set
を XPath式で作るのです。
既に途中まで出来てます、/amount を追記では?

document(spendings/spending/@href)/spending/amount
1

スキルアップ/キャリアアップ(JOB@IT)