我有以下XML文档(由另一方提供)
<transactions>
<transaction TaxAType="11" TaxAValue="111" TaxBType="2" TaxBValue="222" TaxCType="3" TaxCValue="333"/>
<transaction TaxAType="11" TaxAValue="111" TaxBType="2" TaxBValue="222" TaxCType="3" TaxCValue="333"/>
</transactions>
我想编写一个XSLT文档来转换这些行,并总结Tax * Value,例如相应的Tax * Type ='11' .
这是不是可以使用模板?
XQuery中的name(),substring()等函数?你对此有何看法?
4 回答
看看下面的XSLT:
它计算TaxAType = 11的节点的TaxAValue的总和以及Tax?Type = 11的节点的所有Tax?的值的总和 .
这是一个有点冗长但通用的方法:
这应该能够处理任意数量的
Tax*Type
(只要*是单个字符),并且可以将所需类型作为参数传入 .此xml的格式不适合完成您要求的处理类型 . 您最好的选择是使用javascript或其他具有XML功能的语言(C#,Java等)来提取您需要的详细信息 .
使用javascript,您可以找到Tax * Type = 11的任何属性,然后获取下一个属性的值
sum(交易/交易[@ TaxAType ='11'] / @ TaxAValue | @TaxBvalue | @ TaxCvalue)