如何根据条件查找类似的元素并将它们添加到xslt中

时间:2016-08-03 13:34:27

标签: xml xslt xslt-1.0 xslt-grouping

我正在阅读XML文件,基于某些条件,我必须找到一些元素,如果找到则添加它们,以便输出中只有1个元素。我必须在XSLT 1.0中找到它

请查看有效载荷和条件。

<processVoucherDetail>
  <glDistribution>
    <amountDomestic>555.50</amountDomestic>
    <glAccount>
      <businessUnit>123</businessUnit>
      <objectAccount>999</objectAccount>
    </glAccount>
  </glDistribution>
  <glDistribution>
    <amountDomestic>555.50</amountDomestic>
    <glAccount>
      <businessUnit>1234</businessUnit>
      <objectAccount>9998</objectAccount>
    </glAccount>
  </glDistribution>
  <glDistribution>
    <amountDomestic>555.50</amountDomestic>
    <glAccount>
      <businessUnit>123</businessUnit>
      <objectAccount>999</objectAccount>
    </glAccount>
  </glDistribution>
  <voucher>
    <amountGrossDomestic>138.88</amountGrossDomestic>
    <amountTaxDomestic>27.78</amountTaxDomestic>
    <amountTaxableDomestic>111.10</amountTaxableDomestic>
    <payee>
      <entityId>4444</entityId>
    </payee>
    <taxExplanationCode>test</taxExplanationCode>
    <taxRateAreaCode>test</taxRateAreaCode>
  </voucher>
  <voucher>
    <amountGrossDomestic>138.88</amountGrossDomestic>
    <amountTaxDomestic>27.78</amountTaxDomestic>
    <amountTaxableDomestic>111.10</amountTaxableDomestic>

    <payee>
      <entityId>5555</entityId>
    </payee>
    <taxExplanationCode>hello</taxExplanationCode>
    <taxRateAreaCode>hello</taxRateAreaCode>
  </voucher>
  <voucher>
    <amountGrossDomestic>138.88</amountGrossDomestic>
    <amountTaxDomestic>27.78</amountTaxDomestic>
    <amountTaxableDomestic>111.10</amountTaxableDomestic>
    <payee>
      <entityId>6666</entityId>
    </payee>
    <taxExplanationCode>test</taxExplanationCode>
    <taxRateAreaCode>test</taxRateAreaCode>
  </voucher>
</processVoucherDetail>

现在在这个有效负载中,我必须将glaccount的businessUnit和objectAccount的值与其他businessUnit和glaccount的objectAccount进行比较,如果找到(在上面的有效负载1 glaccount与第三个glaccount匹配),那么我必须找到amountTaxableDomestic的凭证元素与glaccount的amountDomestic匹配的值,我找到了1个以上的凭证元素,然后我需要在上面的凭证数量中比较taxExplanationCode和taxRateAreaCode的值。如果我发现任何2个或更多的凭证具有相同的taxExplanationCode值和另一个凭证的taxRateAreaCode(第一个凭证与第三个凭证匹配)和amountTaxableDomestic值以及glaccount的amountDomestic,那么我必须根据上述条件添加所有glaccount的amountDomestic值并且还根据上述条件添加了我所获得的所有凭证的amountTaxDomestic值。

我的标准非常复杂。如果有人想要更多解释,请告诉我。

我是XSLT的新手,因此示例代码将非常有用。

提前谢谢。

0 个答案:

没有答案