私はこのXML入力を持っています
<?xml version="1.0" encoding="utf-8"?>
<Document>
<TopLevel>
<Header>
<!-- Header Information-->
</Header>
<!--Payments is a one to many-->
<Payments>
<PaymentID>PID1</PaymentID>
<!--More Info-->
<!--Transactrion can be one to many for each payment-->
<Transaction>
<TranssID>TR1 - PID1</TranssID>
<TranssID>TR2 - PID1</TranssID>
<!--More Info-->
</Transaction>
</Payments>
<Payments>
<PaymentID>PID2</PaymentID>
<!--More Info-->
<!--Transactrion can be one to many for each payment-->
<Transaction>
<TranssID>TR1 - PID2</TranssID>
<TranssID>TR2 - PID2</TranssID>
<!--More Info-->
</Transaction>
</Payments>
</TopLevel>
</Document>
そして、ここに私のXSLTがあります
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<TopLevel>
<xsl:apply-templates select="Document/TopLevel/Payments"/>
</TopLevel>
</xsl:template>
<xsl:template match="Payments">
<Payments>
<PaymentID>
<xsl:value-of select="PaymentID"/>
</PaymentID>
<ExtraColumn>
<xsl:value-of select ="'ISO'" />
</ExtraColumn>
<xsl:apply-templates select="Transaction"/>
</Payments>
</xsl:template>
<xsl:template match="Transaction">
<xsl:apply-templates select="TranssID"/>
</xsl:template>
<xsl:template match="TranssID">
<transIDs>
<xsl:value-of select="."/>
</transIDs>
</xsl:template>
</xsl:stylesheet>
この出力を作成する
<?xml version="1.0" encoding="utf-8"?>
<TopLevel>
<Payments>
<PaymentID>PID1</PaymentID>
<ExtraColumn>ISO</ExtraColumn>
<transIDs>TR1 - PID1</transIDs>
<transIDs>TR2 - PID1</transIDs>
</Payments>
<Payments>
<PaymentID>PID2</PaymentID>
<ExtraColumn>ISO</ExtraColumn>
<transIDs>TR1 - PID2</transIDs>
<transIDs>TR2 - PID2</transIDs>
</Payments>
</TopLevel>
ここでの問題は、最初の支払いブロックに ExtraColumn を表示するだけでよく、後続の支払いブロックには表示しないことです。
それを行う方法についてのアイデアはありますか?