Я хочу создать итерацию узла к узлу в исходной схеме. Это достаточно просто, но проблема возникает, когда я хочу создать разные итерации на одном и том же узле на основе дочернего элемента первого узла.
<cases>
<customer>
<account>
<name>John Smith</name>
<address>hello road 321</address>
<current_balance>100</current_balance>
<current_balance_date>20180712</current_balance_date>
</account>
<invoices>
<invoice>
<amount>231</amount>
<paydate>20183104</paydate>
</invoice>
<invoice>
<amount>2332</amount>
<paydate>20181204</paydate>
</invoice>
</invoices>
</customer>
</cases>
Для каждого клиента может быть один current_balance, но несколько счетов, и мне нужно сопоставить их с одним и тем же узлом в целевой схеме, и это должно выглядеть так:
<basis>
<toPay>100</toPay>
<dateToPay>20180712</dateToPay>
</basis>
<basis>
<toPay>231</toPay>
<dateToPay>20183104</dateToPay>
</basis>
<basis>
<toPay>2332</toPay>
<dateToPay>20181204</dateToPay>
</basis>
Я пробовал цикл таблицы, обычный цикл, условный цикл и создал xslt (с которым я также очень неопытен) и, похоже, не могу заставить его работать. Я могу сделать только один из каждого или два из каждого.
Изменить: в настоящее время я пытаюсь использовать xslt-inline-call:
<xsl:template name="basis">
<!-- balance-parameters -->
<xsl:param name="current_balance" />
<xsl:param name="current_balance_date" />
<!-- invoice-parameters -->
<xsl:param name="amount" />
<xsl:param name="paydate" />
<xsl:element name="basis">
<xsl:element name="toPay"><xsl:value-of select="$current_balance" /></xsl:element>
<xsl:element name="dateToPay"><xsl:value-of select="$current_balance_date" /></xsl:element>
</xsl:element>
<xsl:for-each select="cases/customer/account/invoices/invoice">
<xsl:element name="basis">
<xsl:element name="toPay"><xsl:value-of select="$amount" /></xsl:element>
<xsl:element name="dateToPay"><xsl:value-of select="$paydate" /></xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:template>
for-each вообще ничего не выводит, я пробовал как case/customer/invoices/invoice, так и case/customer/invoices. Я просто не могу заставить эту работу вообще