Я начал изучать XSLT совсем недавно и придумал сценарий. Исходная и целевая структура точно такие же, чего можно добиться с помощью приведенного ниже кода:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()|@*">
<xsl:copy><xsl:apply-templates select="node()|@*" /></xsl:copy>
</xsl:template>
</xsl:stylesheet>
Но мое требование - создать целевой узел, только если выполнено одно из условий.
Пример, если
VNum eq 999
источник и цель должны выглядеть так:
Источник
<POExt>
<SD>01</SD>
<PODet>
<PNum schemeAgencyID="TEST">12345678</PNum>
<VNum>999</VNum>
</PODet>
<PODet>
<PNum schemeAgencyID="">45654654</PNum>
<VNum>001</VNum>
</PODet>
</POExt>
Цель
<POExt>
<SD>01</SD>
<PODet>
<PNum schemeAgencyID="TEST">12345678</PNum>
<VNum>999</VNum>
</PODet>
</POExt>
<PODet>
повторяется каждый раз, когда он соответствует критериям VNum, если ни один из <PODet>
не соответствует критериям, которые можно иметь
<POExt>
<SD>01</SD>
</POExt>
Если вы хотите добиться этого, используя Copy и apply-templates, любая помощь будет высоко ценится.
Спасибо ..