У меня есть следующий XML:XSLT копия - сделать 2 узла от 1 узла
<records>
<record>
<id>111</id>
<amount>123.45</amount>
<taxCode>A</taxCode>
</record>
</records>
Мне нужно скопировать все узлы в выше, но и создать дополнительную копию некоторых из узлов, которые имеют определенное значение из, скажем, taxCode. Как бы я достигнуть следующих:
<records>
<record>
<id>111</id>
<amount>123.45</amount>
<taxCode>A</taxCode>
</record>
<!-- copy of the node above with amount and taxCode changed -->
<record>
<id>111</id>
<amount>-123.45</amount>
<taxCode>B</taxCode>
</record>
</records>
Я попытался с помощью следующего простого XSL, но это просто копирует все сразу:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
encoding="UTF-8"
omit-xml-declaration="no"
indent="yes" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="records/taxCode[text() = 'A']" >
<xsl:copy select="node()" />
</xsl:template>
</xsl:stylesheet>
Любая помощь с этим ценится.