我尝试使用记录计数 functoid将记录本身出现0的子记录的数量映射到无限制的消息,每条记录包含一个包含子数量的字段记录:
root+ +root
| |
+foo+ +foo+
| |
+bar+ -RecordCount- barcount
|
+xyz
但是,我当前的地图汇总了所有bar
条记录的计数,并在每个foo\barcount
中返回。
示例来源消息
<root>
<foo>
<Id>1</Id>
<bar>
<xyz />
</bar>
<bar>
<xyz />
</bar>
</foo>
<foo>
<Id>2</Id>
<bar>
<xyz />
</bar>
<bar>
<xyz />
</bar>
</foo>
</root>
...结果是
<root>
<foo>
<Id>1</Id>
<barcount>4</barcount>
</foo>
<foo>
<Id>2</Id>
<barcount>4</barcount>
</foo>
</root>
...而我预计
<root>
<foo>
<Id>1</Id>
<barcount>2</barcount>
</foo>
<foo>
<Id>2</Id>
<barcount>2</barcount>
</foo>
</root>
答案 0 :(得分:0)
我通过使用调用XSLT模板脚本 functoid替换记录计数 functoid解决了这个问题。
XSLT模板如下所示:
<xsl:template name="CountMyBar">
<xsl:param name="fooId" />
<xsl:element name="barcount">
<xsl:value-of select="count(//foo[Id=$fooId]/bar)" />
</xsl:element>
</xsl:template>
脚本functoid的输入是来自Id
的{{1}}字段。