ノードの名前 (名前 + ' ' + ミドルネームを含む) を持つソース スキーマがあり、宛先スキーマでミドル ネームを分離して、これが OtherNames に送信されるようにする必要があります。
現在、次のxslt テンプレートがあります。
<xsl:template name="StringSplit">
<xsl:param name="valFirstnames" />
<xsl:choose>
<xsl:when test="contains($valFirstnames, ' ')">
<xsl:call-template name="StringSplit">
<xsl:with-param name="valFirstnames" select="substring-after($valFirstnames, ' ')" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<OtherFirstNames><xsl:value-of select="$valFirstnames" /></OtherFirstNames>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
この xslt テンプレートの現在の出力では、ミドルネームが 1 回ではなく 2 回書き出されています。
<OtherFirstName>Middlename</OtherFirstName>
<OtherFirstName>Middlename</OtherFirstName>
期待される:
<OtherFirstName>Middlename</OtherFirstName>
サンプル入力
<Data>
<SubjectName>
<forenames>first middle</forenames>
</SubjectName>
<SubjectPartner>
<forenames>first middle</forenames>
<Otherforenames>first middle</Otherforenames>
</SubjectPartner>
<etc./>
</Data>
サンプル出力
<Data>
<SubjectName>
<firstname>first</firstname>
<OtherFirstName>middle</OtherFirstname>
</SubjectName>
<SubjectPartner>
<firstname>first</firstname>
<OtherFirstName>middle</OtherFirstName>
<OtherFirstName>middle</OtherFirstName>
</SubjectPartner>
<etc./>
</Data>
現在の xslt を修正し、更新して、同じ子要素の名前を持つ他のパートナー要素を組み込むことを検討しています。