Xml 在XSLT中添加了匹配字段
我需要XSLT问题的帮助。我没有太多的时间去寻找,但对于我所做的我找不到答案。我有五个字段的xml:策略类型、策略日期、状态、邮政编码和支付金额。我需要找到一种方法,将具有相同保单类型、保单日期、状态和邮政编码的所有条目的“支付金额”字段添加到一起。有人对在XSL中实现这一点的最佳实践有什么建议吗Xml 在XSLT中添加了匹配字段,xml,xslt,Xml,Xslt,我需要XSLT问题的帮助。我没有太多的时间去寻找,但对于我所做的我找不到答案。我有五个字段的xml:策略类型、策略日期、状态、邮政编码和支付金额。我需要找到一种方法,将具有相同保单类型、保单日期、状态和邮政编码的所有条目的“支付金额”字段添加到一起。有人对在XSL中实现这一点的最佳实践有什么建议吗 这些字段也从Interbase数据库中提取。如果有一种通过SQL语句实现这一点的方法,也会受到欢迎。不过,我对Interbase不太满意。这种转换: <xsl:stylesheet versio
这些字段也从Interbase数据库中提取。如果有一种通过SQL语句实现这一点的方法,也会受到欢迎。不过,我对Interbase不太满意。这种转换:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:key name="kTrans" match="transaction"
use="concat(Policy_Type,
'+',
Policy_Date,
'+',
State,
'+',
Zip)"/>
<xsl:template match=
"transaction
[generate-id()
=
generate-id(key('kTrans',
concat(Policy_Type,
'+',
Policy_Date,
'+',
State,
'+',
Zip)
)[1]
)
]
">
<transaction>
<xsl:copy-of select="*[not(self::AmountPaid)]"/>
<TotalAmountPaid>
<xsl:value-of select=
"sum(key('kTrans',
concat(Policy_Type,
'+',
Policy_Date,
'+',
State,
'+',
Zip)
)
/AmountPaid
)
"/>
</TotalAmountPaid>
</transaction>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
<transaction>
<Policy_Type>A</Policy_Type>
<Policy_Date>2012-01-11</Policy_Date>
<State>WA</State>
<Zip>98004</Zip>
<TotalAmountPaid>412.37</TotalAmountPaid>
</transaction>
<transaction>
<Policy_Type>B</Policy_Type>
<Policy_Date>2012-01-11</Policy_Date>
<State>NY</State>
<Zip>111111</Zip>
<TotalAmountPaid>222.22</TotalAmountPaid>
</transaction>
<transaction>
<Policy_Type>C</Policy_Type>
<Policy_Date>2012-01-11</Policy_Date>
<State>NY</State>
<Zip>111111</Zip>
<TotalAmountPaid>111.11</TotalAmountPaid>
</transaction>
应用于以下XML文档时(因为未提供源XML文档!):
A.
2012-01-11
华盛顿州
98004
这一转变:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:key name="kTrans" match="transaction"
use="concat(Policy_Type,
'+',
Policy_Date,
'+',
State,
'+',
Zip)"/>
<xsl:template match=
"transaction
[generate-id()
=
generate-id(key('kTrans',
concat(Policy_Type,
'+',
Policy_Date,
'+',
State,
'+',
Zip)
)[1]
)
]
">
<transaction>
<xsl:copy-of select="*[not(self::AmountPaid)]"/>
<TotalAmountPaid>
<xsl:value-of select=
"sum(key('kTrans',
concat(Policy_Type,
'+',
Policy_Date,
'+',
State,
'+',
Zip)
)
/AmountPaid
)
"/>
</TotalAmountPaid>
</transaction>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
<transaction>
<Policy_Type>A</Policy_Type>
<Policy_Date>2012-01-11</Policy_Date>
<State>WA</State>
<Zip>98004</Zip>
<TotalAmountPaid>412.37</TotalAmountPaid>
</transaction>
<transaction>
<Policy_Type>B</Policy_Type>
<Policy_Date>2012-01-11</Policy_Date>
<State>NY</State>
<Zip>111111</Zip>
<TotalAmountPaid>222.22</TotalAmountPaid>
</transaction>
<transaction>
<Policy_Type>C</Policy_Type>
<Policy_Date>2012-01-11</Policy_Date>
<State>NY</State>
<Zip>111111</Zip>
<TotalAmountPaid>111.11</TotalAmountPaid>
</transaction>
应用于以下XML文档时(因为未提供源XML文档!):
A.
2012-01-11
华盛顿州
98004